VK_LAYER_MEWIN_capture/source/variant_wrap.hpp

19674 lines
811 KiB
C++

// This file has been automatically generated. Do NOT edit edit manually, all your changes will be lost when it is regenerated.
#pragma once
#if !defined(VK_CAPTURE_VARIANT_WRAP_HPP_INCLUDED)
#define VK_CAPTURE_VARIANT_WRAP_HPP_INCLUDED 1
#include <cstring>
#include <type_traits>
#include <vulkan/vulkan.h>
#include "common.hpp"
#include "vk_capture.h"
namespace vk_capture
{
inline void* copyNextPtr(const void* pNext);
// do nothing by default
template<typename T>
inline void copyIndirectData(const T&) {}
inline void copyIndirectData(const char*& value)
{
const std::size_t len = std::strlen(value) + 1;
char* copy = allocType<char>(len);
std::memcpy(copy, value, len);
value = copy;
}
template<typename TStruct>
inline void copyIndirectData(const TStruct*& value)
{
TStruct* copy = allocType<TStruct>();
std::memcpy(copy, value, sizeof(TStruct));
copyIndirectData(*copy);
value = copy;
}
inline void copyIndirectData(VkBaseOutStructure& value);
inline void copyIndirectData(VkBaseInStructure& value);
inline void copyIndirectData(VkOffset2D& value);
inline void copyIndirectData(VkOffset3D& value);
inline void copyIndirectData(VkExtent2D& value);
inline void copyIndirectData(VkExtent3D& value);
inline void copyIndirectData(VkViewport& value);
inline void copyIndirectData(VkRect2D& value);
inline void copyIndirectData(VkClearRect& value);
inline void copyIndirectData(VkComponentMapping& value);
inline void copyIndirectData(VkPhysicalDeviceProperties& value);
inline void copyIndirectData(VkExtensionProperties& value);
inline void copyIndirectData(VkLayerProperties& value);
inline void copyIndirectData(VkApplicationInfo& value);
inline void copyIndirectData(VkAllocationCallbacks& value);
inline void copyIndirectData(VkDeviceQueueCreateInfo& value);
inline void copyIndirectData(VkDeviceCreateInfo& value);
inline void copyIndirectData(VkInstanceCreateInfo& value);
inline void copyIndirectData(VkQueueFamilyProperties& value);
inline void copyIndirectData(VkPhysicalDeviceMemoryProperties& value);
inline void copyIndirectData(VkMemoryAllocateInfo& value);
inline void copyIndirectData(VkMemoryRequirements& value);
inline void copyIndirectData(VkSparseImageFormatProperties& value);
inline void copyIndirectData(VkSparseImageMemoryRequirements& value);
inline void copyIndirectData(VkMemoryType& value);
inline void copyIndirectData(VkMemoryHeap& value);
inline void copyIndirectData(VkMappedMemoryRange& value);
inline void copyIndirectData(VkFormatProperties& value);
inline void copyIndirectData(VkImageFormatProperties& value);
inline void copyIndirectData(VkDescriptorBufferInfo& value);
inline void copyIndirectData(VkDescriptorImageInfo& value);
inline void copyIndirectData(VkWriteDescriptorSet& value);
inline void copyIndirectData(VkCopyDescriptorSet& value);
inline void copyIndirectData(VkBufferCreateInfo& value);
inline void copyIndirectData(VkBufferViewCreateInfo& value);
inline void copyIndirectData(VkImageSubresource& value);
inline void copyIndirectData(VkImageSubresourceLayers& value);
inline void copyIndirectData(VkImageSubresourceRange& value);
inline void copyIndirectData(VkMemoryBarrier& value);
inline void copyIndirectData(VkBufferMemoryBarrier& value);
inline void copyIndirectData(VkImageMemoryBarrier& value);
inline void copyIndirectData(VkImageCreateInfo& value);
inline void copyIndirectData(VkSubresourceLayout& value);
inline void copyIndirectData(VkImageViewCreateInfo& value);
inline void copyIndirectData(VkBufferCopy& value);
inline void copyIndirectData(VkSparseMemoryBind& value);
inline void copyIndirectData(VkSparseImageMemoryBind& value);
inline void copyIndirectData(VkSparseBufferMemoryBindInfo& value);
inline void copyIndirectData(VkSparseImageOpaqueMemoryBindInfo& value);
inline void copyIndirectData(VkSparseImageMemoryBindInfo& value);
inline void copyIndirectData(VkBindSparseInfo& value);
inline void copyIndirectData(VkImageCopy& value);
inline void copyIndirectData(VkImageBlit& value);
inline void copyIndirectData(VkBufferImageCopy& value);
inline void copyIndirectData(VkImageResolve& value);
inline void copyIndirectData(VkShaderModuleCreateInfo& value);
inline void copyIndirectData(VkDescriptorSetLayoutBinding& value);
inline void copyIndirectData(VkDescriptorSetLayoutCreateInfo& value);
inline void copyIndirectData(VkDescriptorPoolSize& value);
inline void copyIndirectData(VkDescriptorPoolCreateInfo& value);
inline void copyIndirectData(VkDescriptorSetAllocateInfo& value);
inline void copyIndirectData(VkSpecializationMapEntry& value);
inline void copyIndirectData(VkSpecializationInfo& value);
inline void copyIndirectData(VkPipelineShaderStageCreateInfo& value);
inline void copyIndirectData(VkComputePipelineCreateInfo& value);
inline void copyIndirectData(VkVertexInputBindingDescription& value);
inline void copyIndirectData(VkVertexInputAttributeDescription& value);
inline void copyIndirectData(VkPipelineVertexInputStateCreateInfo& value);
inline void copyIndirectData(VkPipelineInputAssemblyStateCreateInfo& value);
inline void copyIndirectData(VkPipelineTessellationStateCreateInfo& value);
inline void copyIndirectData(VkPipelineViewportStateCreateInfo& value);
inline void copyIndirectData(VkPipelineRasterizationStateCreateInfo& value);
inline void copyIndirectData(VkPipelineMultisampleStateCreateInfo& value);
inline void copyIndirectData(VkPipelineColorBlendAttachmentState& value);
inline void copyIndirectData(VkPipelineColorBlendStateCreateInfo& value);
inline void copyIndirectData(VkPipelineDynamicStateCreateInfo& value);
inline void copyIndirectData(VkStencilOpState& value);
inline void copyIndirectData(VkPipelineDepthStencilStateCreateInfo& value);
inline void copyIndirectData(VkGraphicsPipelineCreateInfo& value);
inline void copyIndirectData(VkPipelineCacheCreateInfo& value);
inline void copyIndirectData(VkPipelineCacheHeaderVersionOne& value);
inline void copyIndirectData(VkPushConstantRange& value);
inline void copyIndirectData(VkPipelineLayoutCreateInfo& value);
inline void copyIndirectData(VkSamplerCreateInfo& value);
inline void copyIndirectData(VkCommandPoolCreateInfo& value);
inline void copyIndirectData(VkCommandBufferAllocateInfo& value);
inline void copyIndirectData(VkCommandBufferInheritanceInfo& value);
inline void copyIndirectData(VkCommandBufferBeginInfo& value);
inline void copyIndirectData(VkRenderPassBeginInfo& value);
inline void copyIndirectData(VkClearDepthStencilValue& value);
inline void copyIndirectData(VkClearAttachment& value);
inline void copyIndirectData(VkAttachmentDescription& value);
inline void copyIndirectData(VkAttachmentReference& value);
inline void copyIndirectData(VkSubpassDescription& value);
inline void copyIndirectData(VkSubpassDependency& value);
inline void copyIndirectData(VkRenderPassCreateInfo& value);
inline void copyIndirectData(VkEventCreateInfo& value);
inline void copyIndirectData(VkFenceCreateInfo& value);
inline void copyIndirectData(VkPhysicalDeviceFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceSparseProperties& value);
inline void copyIndirectData(VkPhysicalDeviceLimits& value);
inline void copyIndirectData(VkSemaphoreCreateInfo& value);
inline void copyIndirectData(VkQueryPoolCreateInfo& value);
inline void copyIndirectData(VkFramebufferCreateInfo& value);
inline void copyIndirectData(VkDrawIndirectCommand& value);
inline void copyIndirectData(VkDrawIndexedIndirectCommand& value);
inline void copyIndirectData(VkDispatchIndirectCommand& value);
inline void copyIndirectData(VkMultiDrawInfoEXT& value);
inline void copyIndirectData(VkMultiDrawIndexedInfoEXT& value);
inline void copyIndirectData(VkSubmitInfo& value);
inline void copyIndirectData(VkDisplayPropertiesKHR& value);
inline void copyIndirectData(VkDisplayPlanePropertiesKHR& value);
inline void copyIndirectData(VkDisplayModeParametersKHR& value);
inline void copyIndirectData(VkDisplayModePropertiesKHR& value);
inline void copyIndirectData(VkDisplayModeCreateInfoKHR& value);
inline void copyIndirectData(VkDisplayPlaneCapabilitiesKHR& value);
inline void copyIndirectData(VkDisplaySurfaceCreateInfoKHR& value);
inline void copyIndirectData(VkDisplayPresentInfoKHR& value);
inline void copyIndirectData(VkSurfaceCapabilitiesKHR& value);
inline void copyIndirectData(VkSurfaceFormatKHR& value);
inline void copyIndirectData(VkSwapchainCreateInfoKHR& value);
inline void copyIndirectData(VkPresentInfoKHR& value);
inline void copyIndirectData(VkDebugReportCallbackCreateInfoEXT& value);
inline void copyIndirectData(VkValidationFlagsEXT& value);
inline void copyIndirectData(VkValidationFeaturesEXT& value);
inline void copyIndirectData(VkPipelineRasterizationStateRasterizationOrderAMD& value);
inline void copyIndirectData(VkDebugMarkerObjectNameInfoEXT& value);
inline void copyIndirectData(VkDebugMarkerObjectTagInfoEXT& value);
inline void copyIndirectData(VkDebugMarkerMarkerInfoEXT& value);
inline void copyIndirectData(VkDedicatedAllocationImageCreateInfoNV& value);
inline void copyIndirectData(VkDedicatedAllocationBufferCreateInfoNV& value);
inline void copyIndirectData(VkDedicatedAllocationMemoryAllocateInfoNV& value);
inline void copyIndirectData(VkExternalImageFormatPropertiesNV& value);
inline void copyIndirectData(VkExternalMemoryImageCreateInfoNV& value);
inline void copyIndirectData(VkExportMemoryAllocateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value);
inline void copyIndirectData(VkDevicePrivateDataCreateInfo& value);
inline void copyIndirectData(VkPrivateDataSlotCreateInfo& value);
inline void copyIndirectData(VkPhysicalDevicePrivateDataFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value);
inline void copyIndirectData(VkPhysicalDeviceMultiDrawPropertiesEXT& value);
inline void copyIndirectData(VkGraphicsShaderGroupCreateInfoNV& value);
inline void copyIndirectData(VkGraphicsPipelineShaderGroupsCreateInfoNV& value);
inline void copyIndirectData(VkBindShaderGroupIndirectCommandNV& value);
inline void copyIndirectData(VkBindIndexBufferIndirectCommandNV& value);
inline void copyIndirectData(VkBindVertexBufferIndirectCommandNV& value);
inline void copyIndirectData(VkSetStateFlagsIndirectCommandNV& value);
inline void copyIndirectData(VkIndirectCommandsStreamNV& value);
inline void copyIndirectData(VkIndirectCommandsLayoutTokenNV& value);
inline void copyIndirectData(VkIndirectCommandsLayoutCreateInfoNV& value);
inline void copyIndirectData(VkGeneratedCommandsInfoNV& value);
inline void copyIndirectData(VkGeneratedCommandsMemoryRequirementsInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceFeatures2& value);
inline void copyIndirectData(VkPhysicalDeviceProperties2& value);
inline void copyIndirectData(VkFormatProperties2& value);
inline void copyIndirectData(VkImageFormatProperties2& value);
inline void copyIndirectData(VkPhysicalDeviceImageFormatInfo2& value);
inline void copyIndirectData(VkQueueFamilyProperties2& value);
inline void copyIndirectData(VkPhysicalDeviceMemoryProperties2& value);
inline void copyIndirectData(VkSparseImageFormatProperties2& value);
inline void copyIndirectData(VkPhysicalDeviceSparseImageFormatInfo2& value);
inline void copyIndirectData(VkPhysicalDevicePushDescriptorPropertiesKHR& value);
inline void copyIndirectData(VkConformanceVersion& value);
inline void copyIndirectData(VkPhysicalDeviceDriverProperties& value);
inline void copyIndirectData(VkPresentRegionsKHR& value);
inline void copyIndirectData(VkPresentRegionKHR& value);
inline void copyIndirectData(VkRectLayerKHR& value);
inline void copyIndirectData(VkPhysicalDeviceVariablePointersFeatures& value);
inline void copyIndirectData(VkExternalMemoryProperties& value);
inline void copyIndirectData(VkPhysicalDeviceExternalImageFormatInfo& value);
inline void copyIndirectData(VkExternalImageFormatProperties& value);
inline void copyIndirectData(VkPhysicalDeviceExternalBufferInfo& value);
inline void copyIndirectData(VkExternalBufferProperties& value);
inline void copyIndirectData(VkPhysicalDeviceIDProperties& value);
inline void copyIndirectData(VkExternalMemoryImageCreateInfo& value);
inline void copyIndirectData(VkExternalMemoryBufferCreateInfo& value);
inline void copyIndirectData(VkExportMemoryAllocateInfo& value);
inline void copyIndirectData(VkImportMemoryFdInfoKHR& value);
inline void copyIndirectData(VkMemoryFdPropertiesKHR& value);
inline void copyIndirectData(VkMemoryGetFdInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceExternalSemaphoreInfo& value);
inline void copyIndirectData(VkExternalSemaphoreProperties& value);
inline void copyIndirectData(VkExportSemaphoreCreateInfo& value);
inline void copyIndirectData(VkImportSemaphoreFdInfoKHR& value);
inline void copyIndirectData(VkSemaphoreGetFdInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceExternalFenceInfo& value);
inline void copyIndirectData(VkExternalFenceProperties& value);
inline void copyIndirectData(VkExportFenceCreateInfo& value);
inline void copyIndirectData(VkImportFenceFdInfoKHR& value);
inline void copyIndirectData(VkFenceGetFdInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceMultiviewFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceMultiviewProperties& value);
inline void copyIndirectData(VkRenderPassMultiviewCreateInfo& value);
inline void copyIndirectData(VkSurfaceCapabilities2EXT& value);
inline void copyIndirectData(VkDisplayPowerInfoEXT& value);
inline void copyIndirectData(VkDeviceEventInfoEXT& value);
inline void copyIndirectData(VkDisplayEventInfoEXT& value);
inline void copyIndirectData(VkSwapchainCounterCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceGroupProperties& value);
inline void copyIndirectData(VkMemoryAllocateFlagsInfo& value);
inline void copyIndirectData(VkBindBufferMemoryInfo& value);
inline void copyIndirectData(VkBindBufferMemoryDeviceGroupInfo& value);
inline void copyIndirectData(VkBindImageMemoryInfo& value);
inline void copyIndirectData(VkBindImageMemoryDeviceGroupInfo& value);
inline void copyIndirectData(VkDeviceGroupRenderPassBeginInfo& value);
inline void copyIndirectData(VkDeviceGroupCommandBufferBeginInfo& value);
inline void copyIndirectData(VkDeviceGroupSubmitInfo& value);
inline void copyIndirectData(VkDeviceGroupBindSparseInfo& value);
inline void copyIndirectData(VkDeviceGroupPresentCapabilitiesKHR& value);
inline void copyIndirectData(VkImageSwapchainCreateInfoKHR& value);
inline void copyIndirectData(VkBindImageMemorySwapchainInfoKHR& value);
inline void copyIndirectData(VkAcquireNextImageInfoKHR& value);
inline void copyIndirectData(VkDeviceGroupPresentInfoKHR& value);
inline void copyIndirectData(VkDeviceGroupDeviceCreateInfo& value);
inline void copyIndirectData(VkDeviceGroupSwapchainCreateInfoKHR& value);
inline void copyIndirectData(VkDescriptorUpdateTemplateEntry& value);
inline void copyIndirectData(VkDescriptorUpdateTemplateCreateInfo& value);
inline void copyIndirectData(VkXYColorEXT& value);
inline void copyIndirectData(VkPhysicalDevicePresentIdFeaturesKHR& value);
inline void copyIndirectData(VkPresentIdKHR& value);
inline void copyIndirectData(VkPhysicalDevicePresentWaitFeaturesKHR& value);
inline void copyIndirectData(VkHdrMetadataEXT& value);
inline void copyIndirectData(VkDisplayNativeHdrSurfaceCapabilitiesAMD& value);
inline void copyIndirectData(VkSwapchainDisplayNativeHdrCreateInfoAMD& value);
inline void copyIndirectData(VkRefreshCycleDurationGOOGLE& value);
inline void copyIndirectData(VkPastPresentationTimingGOOGLE& value);
inline void copyIndirectData(VkPresentTimesInfoGOOGLE& value);
inline void copyIndirectData(VkPresentTimeGOOGLE& value);
inline void copyIndirectData(VkViewportWScalingNV& value);
inline void copyIndirectData(VkPipelineViewportWScalingStateCreateInfoNV& value);
inline void copyIndirectData(VkViewportSwizzleNV& value);
inline void copyIndirectData(VkPipelineViewportSwizzleStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceDiscardRectanglePropertiesEXT& value);
inline void copyIndirectData(VkPipelineDiscardRectangleStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value);
inline void copyIndirectData(VkInputAttachmentAspectReference& value);
inline void copyIndirectData(VkRenderPassInputAttachmentAspectCreateInfo& value);
inline void copyIndirectData(VkPhysicalDeviceSurfaceInfo2KHR& value);
inline void copyIndirectData(VkSurfaceCapabilities2KHR& value);
inline void copyIndirectData(VkSurfaceFormat2KHR& value);
inline void copyIndirectData(VkDisplayProperties2KHR& value);
inline void copyIndirectData(VkDisplayPlaneProperties2KHR& value);
inline void copyIndirectData(VkDisplayModeProperties2KHR& value);
inline void copyIndirectData(VkDisplayPlaneInfo2KHR& value);
inline void copyIndirectData(VkDisplayPlaneCapabilities2KHR& value);
inline void copyIndirectData(VkSharedPresentSurfaceCapabilitiesKHR& value);
inline void copyIndirectData(VkPhysicalDevice16BitStorageFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceSubgroupProperties& value);
inline void copyIndirectData(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value);
inline void copyIndirectData(VkBufferMemoryRequirementsInfo2& value);
inline void copyIndirectData(VkDeviceBufferMemoryRequirements& value);
inline void copyIndirectData(VkImageMemoryRequirementsInfo2& value);
inline void copyIndirectData(VkImageSparseMemoryRequirementsInfo2& value);
inline void copyIndirectData(VkDeviceImageMemoryRequirements& value);
inline void copyIndirectData(VkMemoryRequirements2& value);
inline void copyIndirectData(VkSparseImageMemoryRequirements2& value);
inline void copyIndirectData(VkPhysicalDevicePointClippingProperties& value);
inline void copyIndirectData(VkMemoryDedicatedRequirements& value);
inline void copyIndirectData(VkMemoryDedicatedAllocateInfo& value);
inline void copyIndirectData(VkImageViewUsageCreateInfo& value);
inline void copyIndirectData(VkPipelineTessellationDomainOriginStateCreateInfo& value);
inline void copyIndirectData(VkSamplerYcbcrConversionInfo& value);
inline void copyIndirectData(VkSamplerYcbcrConversionCreateInfo& value);
inline void copyIndirectData(VkBindImagePlaneMemoryInfo& value);
inline void copyIndirectData(VkImagePlaneMemoryRequirementsInfo& value);
inline void copyIndirectData(VkPhysicalDeviceSamplerYcbcrConversionFeatures& value);
inline void copyIndirectData(VkSamplerYcbcrConversionImageFormatProperties& value);
inline void copyIndirectData(VkTextureLODGatherFormatPropertiesAMD& value);
inline void copyIndirectData(VkConditionalRenderingBeginInfoEXT& value);
inline void copyIndirectData(VkProtectedSubmitInfo& value);
inline void copyIndirectData(VkPhysicalDeviceProtectedMemoryFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceProtectedMemoryProperties& value);
inline void copyIndirectData(VkDeviceQueueInfo2& value);
inline void copyIndirectData(VkPipelineCoverageToColorStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceSamplerFilterMinmaxProperties& value);
inline void copyIndirectData(VkSampleLocationEXT& value);
inline void copyIndirectData(VkSampleLocationsInfoEXT& value);
inline void copyIndirectData(VkAttachmentSampleLocationsEXT& value);
inline void copyIndirectData(VkSubpassSampleLocationsEXT& value);
inline void copyIndirectData(VkRenderPassSampleLocationsBeginInfoEXT& value);
inline void copyIndirectData(VkPipelineSampleLocationsStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceSampleLocationsPropertiesEXT& value);
inline void copyIndirectData(VkMultisamplePropertiesEXT& value);
inline void copyIndirectData(VkSamplerReductionModeCreateInfo& value);
inline void copyIndirectData(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMultiDrawFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value);
inline void copyIndirectData(VkPipelineColorBlendAdvancedStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceInlineUniformBlockFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceInlineUniformBlockProperties& value);
inline void copyIndirectData(VkWriteDescriptorSetInlineUniformBlock& value);
inline void copyIndirectData(VkDescriptorPoolInlineUniformBlockCreateInfo& value);
inline void copyIndirectData(VkPipelineCoverageModulationStateCreateInfoNV& value);
inline void copyIndirectData(VkImageFormatListCreateInfo& value);
inline void copyIndirectData(VkValidationCacheCreateInfoEXT& value);
inline void copyIndirectData(VkShaderModuleValidationCacheCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMaintenance3Properties& value);
inline void copyIndirectData(VkPhysicalDeviceMaintenance4Features& value);
inline void copyIndirectData(VkPhysicalDeviceMaintenance4Properties& value);
inline void copyIndirectData(VkDescriptorSetLayoutSupport& value);
inline void copyIndirectData(VkPhysicalDeviceShaderDrawParametersFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceShaderFloat16Int8Features& value);
inline void copyIndirectData(VkPhysicalDeviceFloatControlsProperties& value);
inline void copyIndirectData(VkPhysicalDeviceHostQueryResetFeatures& value);
inline void copyIndirectData(VkShaderResourceUsageAMD& value);
inline void copyIndirectData(VkShaderStatisticsInfoAMD& value);
inline void copyIndirectData(VkDeviceQueueGlobalPriorityCreateInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value);
inline void copyIndirectData(VkQueueFamilyGlobalPriorityPropertiesKHR& value);
inline void copyIndirectData(VkDebugUtilsObjectNameInfoEXT& value);
inline void copyIndirectData(VkDebugUtilsObjectTagInfoEXT& value);
inline void copyIndirectData(VkDebugUtilsLabelEXT& value);
inline void copyIndirectData(VkDebugUtilsMessengerCreateInfoEXT& value);
inline void copyIndirectData(VkDebugUtilsMessengerCallbackDataEXT& value);
inline void copyIndirectData(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value);
inline void copyIndirectData(VkDeviceDeviceMemoryReportCreateInfoEXT& value);
inline void copyIndirectData(VkDeviceMemoryReportCallbackDataEXT& value);
inline void copyIndirectData(VkImportMemoryHostPointerInfoEXT& value);
inline void copyIndirectData(VkMemoryHostPointerPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value);
inline void copyIndirectData(VkCalibratedTimestampInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceShaderCorePropertiesAMD& value);
inline void copyIndirectData(VkPhysicalDeviceShaderCoreProperties2AMD& value);
inline void copyIndirectData(VkPipelineRasterizationConservativeStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceDescriptorIndexingFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceDescriptorIndexingProperties& value);
inline void copyIndirectData(VkDescriptorSetLayoutBindingFlagsCreateInfo& value);
inline void copyIndirectData(VkDescriptorSetVariableDescriptorCountAllocateInfo& value);
inline void copyIndirectData(VkDescriptorSetVariableDescriptorCountLayoutSupport& value);
inline void copyIndirectData(VkAttachmentDescription2& value);
inline void copyIndirectData(VkAttachmentReference2& value);
inline void copyIndirectData(VkSubpassDescription2& value);
inline void copyIndirectData(VkSubpassDependency2& value);
inline void copyIndirectData(VkRenderPassCreateInfo2& value);
inline void copyIndirectData(VkSubpassBeginInfo& value);
inline void copyIndirectData(VkSubpassEndInfo& value);
inline void copyIndirectData(VkPhysicalDeviceTimelineSemaphoreFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceTimelineSemaphoreProperties& value);
inline void copyIndirectData(VkSemaphoreTypeCreateInfo& value);
inline void copyIndirectData(VkTimelineSemaphoreSubmitInfo& value);
inline void copyIndirectData(VkSemaphoreWaitInfo& value);
inline void copyIndirectData(VkSemaphoreSignalInfo& value);
inline void copyIndirectData(VkVertexInputBindingDivisorDescriptionEXT& value);
inline void copyIndirectData(VkPipelineVertexInputDivisorStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDevicePCIBusInfoPropertiesEXT& value);
inline void copyIndirectData(VkCommandBufferInheritanceConditionalRenderingInfoEXT& value);
inline void copyIndirectData(VkPhysicalDevice8BitStorageFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceConditionalRenderingFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceVulkanMemoryModelFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceShaderAtomicInt64Features& value);
inline void copyIndirectData(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value);
inline void copyIndirectData(VkQueueFamilyCheckpointPropertiesNV& value);
inline void copyIndirectData(VkCheckpointDataNV& value);
inline void copyIndirectData(VkPhysicalDeviceDepthStencilResolveProperties& value);
inline void copyIndirectData(VkSubpassDescriptionDepthStencilResolve& value);
inline void copyIndirectData(VkImageViewASTCDecodeModeEXT& value);
inline void copyIndirectData(VkPhysicalDeviceASTCDecodeFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceTransformFeedbackFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
inline void copyIndirectData(VkPipelineRasterizationStateStreamCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value);
inline void copyIndirectData(VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceExclusiveScissorFeaturesNV& value);
inline void copyIndirectData(VkPipelineViewportExclusiveScissorStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceCornerSampledImageFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceShaderImageFootprintFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value);
inline void copyIndirectData(VkShadingRatePaletteNV& value);
inline void copyIndirectData(VkPipelineViewportShadingRateImageStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceShadingRateImageFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceShadingRateImagePropertiesNV& value);
inline void copyIndirectData(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value);
inline void copyIndirectData(VkCoarseSampleLocationNV& value);
inline void copyIndirectData(VkCoarseSampleOrderCustomNV& value);
inline void copyIndirectData(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceMeshShaderFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceMeshShaderPropertiesNV& value);
inline void copyIndirectData(VkDrawMeshTasksIndirectCommandNV& value);
inline void copyIndirectData(VkRayTracingShaderGroupCreateInfoNV& value);
inline void copyIndirectData(VkRayTracingShaderGroupCreateInfoKHR& value);
inline void copyIndirectData(VkRayTracingPipelineCreateInfoNV& value);
inline void copyIndirectData(VkRayTracingPipelineCreateInfoKHR& value);
inline void copyIndirectData(VkGeometryTrianglesNV& value);
inline void copyIndirectData(VkGeometryAABBNV& value);
inline void copyIndirectData(VkGeometryDataNV& value);
inline void copyIndirectData(VkGeometryNV& value);
inline void copyIndirectData(VkAccelerationStructureInfoNV& value);
inline void copyIndirectData(VkAccelerationStructureCreateInfoNV& value);
inline void copyIndirectData(VkBindAccelerationStructureMemoryInfoNV& value);
inline void copyIndirectData(VkWriteDescriptorSetAccelerationStructureKHR& value);
inline void copyIndirectData(VkWriteDescriptorSetAccelerationStructureNV& value);
inline void copyIndirectData(VkAccelerationStructureMemoryRequirementsInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceAccelerationStructureFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayQueryFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceAccelerationStructurePropertiesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayTracingPropertiesNV& value);
inline void copyIndirectData(VkStridedDeviceAddressRegionKHR& value);
inline void copyIndirectData(VkTraceRaysIndirectCommandKHR& value);
inline void copyIndirectData(VkTraceRaysIndirectCommand2KHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value);
inline void copyIndirectData(VkDrmFormatModifierPropertiesListEXT& value);
inline void copyIndirectData(VkDrmFormatModifierPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value);
inline void copyIndirectData(VkImageDrmFormatModifierListCreateInfoEXT& value);
inline void copyIndirectData(VkImageDrmFormatModifierExplicitCreateInfoEXT& value);
inline void copyIndirectData(VkImageDrmFormatModifierPropertiesEXT& value);
inline void copyIndirectData(VkImageStencilUsageCreateInfo& value);
inline void copyIndirectData(VkDeviceMemoryOverallocationCreateInfoAMD& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value);
inline void copyIndirectData(VkRenderPassFragmentDensityMapCreateInfoEXT& value);
inline void copyIndirectData(VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value);
inline void copyIndirectData(VkPhysicalDeviceScalarBlockLayoutFeatures& value);
inline void copyIndirectData(VkSurfaceProtectedCapabilitiesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceDepthClipEnableFeaturesEXT& value);
inline void copyIndirectData(VkPipelineRasterizationDepthClipStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMemoryBudgetPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMemoryPriorityFeaturesEXT& value);
inline void copyIndirectData(VkMemoryPriorityAllocateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceBufferDeviceAddressFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value);
inline void copyIndirectData(VkBufferDeviceAddressInfo& value);
inline void copyIndirectData(VkBufferOpaqueCaptureAddressCreateInfo& value);
inline void copyIndirectData(VkBufferDeviceAddressCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImageViewImageFormatInfoEXT& value);
inline void copyIndirectData(VkFilterCubicImageViewImageFormatPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImagelessFramebufferFeatures& value);
inline void copyIndirectData(VkFramebufferAttachmentsCreateInfo& value);
inline void copyIndirectData(VkFramebufferAttachmentImageInfo& value);
inline void copyIndirectData(VkRenderPassAttachmentBeginInfo& value);
inline void copyIndirectData(VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceCooperativeMatrixFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceCooperativeMatrixPropertiesNV& value);
inline void copyIndirectData(VkCooperativeMatrixPropertiesNV& value);
inline void copyIndirectData(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
inline void copyIndirectData(VkImageViewHandleInfoNVX& value);
inline void copyIndirectData(VkImageViewAddressPropertiesNVX& value);
inline void copyIndirectData(VkPipelineCreationFeedback& value);
inline void copyIndirectData(VkPipelineCreationFeedbackCreateInfo& value);
inline void copyIndirectData(VkPhysicalDevicePerformanceQueryFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDevicePerformanceQueryPropertiesKHR& value);
inline void copyIndirectData(VkPerformanceCounterKHR& value);
inline void copyIndirectData(VkPerformanceCounterDescriptionKHR& value);
inline void copyIndirectData(VkQueryPoolPerformanceCreateInfoKHR& value);
inline void copyIndirectData(VkAcquireProfilingLockInfoKHR& value);
inline void copyIndirectData(VkPerformanceQuerySubmitInfoKHR& value);
inline void copyIndirectData(VkHeadlessSurfaceCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceCoverageReductionModeFeaturesNV& value);
inline void copyIndirectData(VkPipelineCoverageReductionStateCreateInfoNV& value);
inline void copyIndirectData(VkFramebufferMixedSamplesCombinationNV& value);
inline void copyIndirectData(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value);
inline void copyIndirectData(VkPerformanceValueINTEL& value);
inline void copyIndirectData(VkInitializePerformanceApiInfoINTEL& value);
inline void copyIndirectData(VkQueryPoolPerformanceQueryCreateInfoINTEL& value);
inline void copyIndirectData(VkPerformanceMarkerInfoINTEL& value);
inline void copyIndirectData(VkPerformanceStreamMarkerInfoINTEL& value);
inline void copyIndirectData(VkPerformanceOverrideInfoINTEL& value);
inline void copyIndirectData(VkPerformanceConfigurationAcquireInfoINTEL& value);
inline void copyIndirectData(VkPhysicalDeviceShaderClockFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value);
inline void copyIndirectData(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value);
inline void copyIndirectData(VkAttachmentReferenceStencilLayout& value);
inline void copyIndirectData(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value);
inline void copyIndirectData(VkAttachmentDescriptionStencilLayout& value);
inline void copyIndirectData(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value);
inline void copyIndirectData(VkPipelineInfoKHR& value);
inline void copyIndirectData(VkPipelineExecutablePropertiesKHR& value);
inline void copyIndirectData(VkPipelineExecutableInfoKHR& value);
inline void copyIndirectData(VkPipelineExecutableStatisticKHR& value);
inline void copyIndirectData(VkPipelineExecutableInternalRepresentationKHR& value);
inline void copyIndirectData(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceTexelBufferAlignmentProperties& value);
inline void copyIndirectData(VkPhysicalDeviceSubgroupSizeControlFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceSubgroupSizeControlProperties& value);
inline void copyIndirectData(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value);
inline void copyIndirectData(VkSubpassShadingPipelineCreateInfoHUAWEI& value);
inline void copyIndirectData(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value);
inline void copyIndirectData(VkMemoryOpaqueCaptureAddressAllocateInfo& value);
inline void copyIndirectData(VkDeviceMemoryOpaqueCaptureAddressInfo& value);
inline void copyIndirectData(VkPhysicalDeviceLineRasterizationFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceLineRasterizationPropertiesEXT& value);
inline void copyIndirectData(VkPipelineRasterizationLineStateCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDevicePipelineCreationCacheControlFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan11Features& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan11Properties& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan12Features& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan12Properties& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan13Features& value);
inline void copyIndirectData(VkPhysicalDeviceVulkan13Properties& value);
inline void copyIndirectData(VkPipelineCompilerControlCreateInfoAMD& value);
inline void copyIndirectData(VkPhysicalDeviceCoherentMemoryFeaturesAMD& value);
inline void copyIndirectData(VkPhysicalDeviceToolProperties& value);
inline void copyIndirectData(VkSamplerCustomBorderColorCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceCustomBorderColorPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceCustomBorderColorFeaturesEXT& value);
inline void copyIndirectData(VkSamplerBorderColorComponentMappingCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value);
inline void copyIndirectData(VkAccelerationStructureGeometryTrianglesDataKHR& value);
inline void copyIndirectData(VkAccelerationStructureGeometryAabbsDataKHR& value);
inline void copyIndirectData(VkAccelerationStructureGeometryInstancesDataKHR& value);
inline void copyIndirectData(VkAccelerationStructureGeometryKHR& value);
inline void copyIndirectData(VkAccelerationStructureBuildGeometryInfoKHR& value);
inline void copyIndirectData(VkAccelerationStructureBuildRangeInfoKHR& value);
inline void copyIndirectData(VkAccelerationStructureCreateInfoKHR& value);
inline void copyIndirectData(VkAabbPositionsKHR& value);
inline void copyIndirectData(VkTransformMatrixKHR& value);
inline void copyIndirectData(VkAccelerationStructureInstanceKHR& value);
inline void copyIndirectData(VkAccelerationStructureDeviceAddressInfoKHR& value);
inline void copyIndirectData(VkAccelerationStructureVersionInfoKHR& value);
inline void copyIndirectData(VkCopyAccelerationStructureInfoKHR& value);
inline void copyIndirectData(VkCopyAccelerationStructureToMemoryInfoKHR& value);
inline void copyIndirectData(VkCopyMemoryToAccelerationStructureInfoKHR& value);
inline void copyIndirectData(VkRayTracingPipelineInterfaceCreateInfoKHR& value);
inline void copyIndirectData(VkPipelineLibraryCreateInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value);
inline void copyIndirectData(VkRenderPassTransformBeginInfoQCOM& value);
inline void copyIndirectData(VkCopyCommandTransformInfoQCOM& value);
inline void copyIndirectData(VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value);
inline void copyIndirectData(VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value);
inline void copyIndirectData(VkDeviceDiagnosticsConfigCreateInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRobustness2FeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceRobustness2PropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImageRobustnessFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDevice4444FormatsFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value);
inline void copyIndirectData(VkBufferCopy2& value);
inline void copyIndirectData(VkImageCopy2& value);
inline void copyIndirectData(VkImageBlit2& value);
inline void copyIndirectData(VkBufferImageCopy2& value);
inline void copyIndirectData(VkImageResolve2& value);
inline void copyIndirectData(VkCopyBufferInfo2& value);
inline void copyIndirectData(VkCopyImageInfo2& value);
inline void copyIndirectData(VkBlitImageInfo2& value);
inline void copyIndirectData(VkCopyBufferToImageInfo2& value);
inline void copyIndirectData(VkCopyImageToBufferInfo2& value);
inline void copyIndirectData(VkResolveImageInfo2& value);
inline void copyIndirectData(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value);
inline void copyIndirectData(VkFragmentShadingRateAttachmentInfoKHR& value);
inline void copyIndirectData(VkPipelineFragmentShadingRateStateCreateInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShadingRateKHR& value);
inline void copyIndirectData(VkPhysicalDeviceShaderTerminateInvocationFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value);
inline void copyIndirectData(VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value);
inline void copyIndirectData(VkAccelerationStructureBuildSizesInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value);
inline void copyIndirectData(VkMutableDescriptorTypeListVALVE& value);
inline void copyIndirectData(VkMutableDescriptorTypeCreateInfoVALVE& value);
inline void copyIndirectData(VkPhysicalDeviceDepthClipControlFeaturesEXT& value);
inline void copyIndirectData(VkPipelineViewportDepthClipControlCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value);
inline void copyIndirectData(VkVertexInputBindingDescription2EXT& value);
inline void copyIndirectData(VkVertexInputAttributeDescription2EXT& value);
inline void copyIndirectData(VkPhysicalDeviceColorWriteEnableFeaturesEXT& value);
inline void copyIndirectData(VkPipelineColorWriteCreateInfoEXT& value);
inline void copyIndirectData(VkMemoryBarrier2& value);
inline void copyIndirectData(VkImageMemoryBarrier2& value);
inline void copyIndirectData(VkBufferMemoryBarrier2& value);
inline void copyIndirectData(VkDependencyInfo& value);
inline void copyIndirectData(VkSemaphoreSubmitInfo& value);
inline void copyIndirectData(VkCommandBufferSubmitInfo& value);
inline void copyIndirectData(VkSubmitInfo2& value);
inline void copyIndirectData(VkQueueFamilyCheckpointProperties2NV& value);
inline void copyIndirectData(VkCheckpointData2NV& value);
inline void copyIndirectData(VkPhysicalDeviceSynchronization2Features& value);
inline void copyIndirectData(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value);
inline void copyIndirectData(VkSubpassResolvePerformanceQueryEXT& value);
inline void copyIndirectData(VkMultisampledRenderToSingleSampledInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value);
inline void copyIndirectData(VkCommandBufferInheritanceViewportScissorInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceProvokingVertexFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceProvokingVertexPropertiesEXT& value);
inline void copyIndirectData(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value);
inline void copyIndirectData(VkCuModuleCreateInfoNVX& value);
inline void copyIndirectData(VkCuFunctionCreateInfoNVX& value);
inline void copyIndirectData(VkCuLaunchInfoNVX& value);
inline void copyIndirectData(VkPhysicalDeviceShaderIntegerDotProductFeatures& value);
inline void copyIndirectData(VkPhysicalDeviceShaderIntegerDotProductProperties& value);
inline void copyIndirectData(VkPhysicalDeviceDrmPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value);
inline void copyIndirectData(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value);
inline void copyIndirectData(VkAccelerationStructureGeometryMotionTrianglesDataNV& value);
inline void copyIndirectData(VkAccelerationStructureMotionInfoNV& value);
inline void copyIndirectData(VkSRTDataNV& value);
inline void copyIndirectData(VkAccelerationStructureSRTMotionInstanceNV& value);
inline void copyIndirectData(VkAccelerationStructureMatrixMotionInstanceNV& value);
inline void copyIndirectData(VkAccelerationStructureMotionInstanceNV& value);
inline void copyIndirectData(VkMemoryGetRemoteAddressInfoNV& value);
inline void copyIndirectData(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value);
inline void copyIndirectData(VkFormatProperties3& value);
inline void copyIndirectData(VkDrmFormatModifierPropertiesList2EXT& value);
inline void copyIndirectData(VkDrmFormatModifierProperties2EXT& value);
inline void copyIndirectData(VkPipelineRenderingCreateInfo& value);
inline void copyIndirectData(VkRenderingInfo& value);
inline void copyIndirectData(VkRenderingAttachmentInfo& value);
inline void copyIndirectData(VkRenderingFragmentShadingRateAttachmentInfoKHR& value);
inline void copyIndirectData(VkRenderingFragmentDensityMapAttachmentInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceDynamicRenderingFeatures& value);
inline void copyIndirectData(VkCommandBufferInheritanceRenderingInfo& value);
inline void copyIndirectData(VkAttachmentSampleCountInfoAMD& value);
inline void copyIndirectData(VkMultiviewPerViewAttributesInfoNVX& value);
inline void copyIndirectData(VkPhysicalDeviceImageViewMinLodFeaturesEXT& value);
inline void copyIndirectData(VkImageViewMinLodCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value);
inline void copyIndirectData(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value);
inline void copyIndirectData(VkGraphicsPipelineLibraryCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value);
inline void copyIndirectData(VkDescriptorSetBindingReferenceVALVE& value);
inline void copyIndirectData(VkDescriptorSetLayoutHostMappingInfoVALVE& value);
inline void copyIndirectData(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value);
inline void copyIndirectData(VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value);
inline void copyIndirectData(VkShaderModuleIdentifierEXT& value);
inline void copyIndirectData(VkImageCompressionControlEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImageCompressionControlFeaturesEXT& value);
inline void copyIndirectData(VkImageCompressionPropertiesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value);
inline void copyIndirectData(VkImageSubresource2EXT& value);
inline void copyIndirectData(VkSubresourceLayout2EXT& value);
inline void copyIndirectData(VkRenderPassCreationControlEXT& value);
inline void copyIndirectData(VkRenderPassCreationFeedbackInfoEXT& value);
inline void copyIndirectData(VkRenderPassCreationFeedbackCreateInfoEXT& value);
inline void copyIndirectData(VkRenderPassSubpassFeedbackInfoEXT& value);
inline void copyIndirectData(VkRenderPassSubpassFeedbackCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value);
inline void copyIndirectData(VkPipelinePropertiesIdentifierEXT& value);
inline void copyIndirectData(VkPhysicalDevicePipelinePropertiesFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value);
inline void copyIndirectData(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value);
inline void copyIndirectData(VkPhysicalDevicePipelineRobustnessFeaturesEXT& value);
inline void copyIndirectData(VkPipelineRobustnessCreateInfoEXT& value);
inline void copyIndirectData(VkPhysicalDevicePipelineRobustnessPropertiesEXT& value);
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
inline void copyIndirectData(VkAndroidSurfaceCreateInfoKHR& value);
inline void copyIndirectData(VkNativeBufferUsage2ANDROID& value);
inline void copyIndirectData(VkNativeBufferANDROID& value);
inline void copyIndirectData(VkSwapchainImageCreateInfoANDROID& value);
inline void copyIndirectData(VkPhysicalDevicePresentationPropertiesANDROID& value);
inline void copyIndirectData(VkImportAndroidHardwareBufferInfoANDROID& value);
inline void copyIndirectData(VkAndroidHardwareBufferUsageANDROID& value);
inline void copyIndirectData(VkAndroidHardwareBufferPropertiesANDROID& value);
inline void copyIndirectData(VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
inline void copyIndirectData(VkAndroidHardwareBufferFormatPropertiesANDROID& value);
inline void copyIndirectData(VkExternalFormatANDROID& value);
#endif // defined(VK_USE_PLATFORM_ANDROID_KHR)
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
inline void copyIndirectData(VkDirectFBSurfaceCreateInfoEXT& value);
#endif // defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#if defined(VK_USE_PLATFORM_FUCHSIA)
inline void copyIndirectData(VkImagePipeSurfaceCreateInfoFUCHSIA& value);
inline void copyIndirectData(VkImportMemoryZirconHandleInfoFUCHSIA& value);
inline void copyIndirectData(VkMemoryZirconHandlePropertiesFUCHSIA& value);
inline void copyIndirectData(VkMemoryGetZirconHandleInfoFUCHSIA& value);
inline void copyIndirectData(VkImportSemaphoreZirconHandleInfoFUCHSIA& value);
inline void copyIndirectData(VkSemaphoreGetZirconHandleInfoFUCHSIA& value);
inline void copyIndirectData(VkImportMemoryBufferCollectionFUCHSIA& value);
inline void copyIndirectData(VkBufferCollectionImageCreateInfoFUCHSIA& value);
inline void copyIndirectData(VkBufferCollectionBufferCreateInfoFUCHSIA& value);
inline void copyIndirectData(VkBufferCollectionCreateInfoFUCHSIA& value);
inline void copyIndirectData(VkBufferCollectionPropertiesFUCHSIA& value);
inline void copyIndirectData(VkBufferConstraintsInfoFUCHSIA& value);
inline void copyIndirectData(VkSysmemColorSpaceFUCHSIA& value);
inline void copyIndirectData(VkImageFormatConstraintsInfoFUCHSIA& value);
inline void copyIndirectData(VkImageConstraintsInfoFUCHSIA& value);
inline void copyIndirectData(VkBufferCollectionConstraintsInfoFUCHSIA& value);
#endif // defined(VK_USE_PLATFORM_FUCHSIA)
#if defined(VK_USE_PLATFORM_GGP)
inline void copyIndirectData(VkStreamDescriptorSurfaceCreateInfoGGP& value);
inline void copyIndirectData(VkPresentFrameTokenGGP& value);
#endif // defined(VK_USE_PLATFORM_GGP)
#if defined(VK_USE_PLATFORM_IOS_MVK)
inline void copyIndirectData(VkIOSSurfaceCreateInfoMVK& value);
#endif // defined(VK_USE_PLATFORM_IOS_MVK)
#if defined(VK_USE_PLATFORM_MACOS_MVK)
inline void copyIndirectData(VkMacOSSurfaceCreateInfoMVK& value);
#endif // defined(VK_USE_PLATFORM_MACOS_MVK)
#if defined(VK_USE_PLATFORM_METAL_EXT)
inline void copyIndirectData(VkMetalSurfaceCreateInfoEXT& value);
inline void copyIndirectData(VkExportMetalObjectCreateInfoEXT& value);
inline void copyIndirectData(VkExportMetalObjectsInfoEXT& value);
inline void copyIndirectData(VkExportMetalDeviceInfoEXT& value);
inline void copyIndirectData(VkExportMetalCommandQueueInfoEXT& value);
inline void copyIndirectData(VkExportMetalBufferInfoEXT& value);
inline void copyIndirectData(VkImportMetalBufferInfoEXT& value);
inline void copyIndirectData(VkExportMetalTextureInfoEXT& value);
inline void copyIndirectData(VkImportMetalTextureInfoEXT& value);
inline void copyIndirectData(VkExportMetalIOSurfaceInfoEXT& value);
inline void copyIndirectData(VkImportMetalIOSurfaceInfoEXT& value);
inline void copyIndirectData(VkExportMetalSharedEventInfoEXT& value);
inline void copyIndirectData(VkImportMetalSharedEventInfoEXT& value);
#endif // defined(VK_USE_PLATFORM_METAL_EXT)
#if defined(VK_ENABLE_BETA_EXTENSIONS)
inline void copyIndirectData(VkPhysicalDevicePortabilitySubsetFeaturesKHR& value);
inline void copyIndirectData(VkPhysicalDevicePortabilitySubsetPropertiesKHR& value);
inline void copyIndirectData(VkQueueFamilyVideoPropertiesKHR& value);
inline void copyIndirectData(VkQueueFamilyQueryResultStatusPropertiesKHR& value);
inline void copyIndirectData(VkVideoProfileListInfoKHR& value);
inline void copyIndirectData(VkPhysicalDeviceVideoFormatInfoKHR& value);
inline void copyIndirectData(VkVideoFormatPropertiesKHR& value);
inline void copyIndirectData(VkVideoProfileInfoKHR& value);
inline void copyIndirectData(VkVideoCapabilitiesKHR& value);
inline void copyIndirectData(VkVideoSessionMemoryRequirementsKHR& value);
inline void copyIndirectData(VkBindVideoSessionMemoryInfoKHR& value);
inline void copyIndirectData(VkVideoPictureResourceInfoKHR& value);
inline void copyIndirectData(VkVideoReferenceSlotInfoKHR& value);
inline void copyIndirectData(VkVideoDecodeCapabilitiesKHR& value);
inline void copyIndirectData(VkVideoDecodeUsageInfoKHR& value);
inline void copyIndirectData(VkVideoDecodeInfoKHR& value);
inline void copyIndirectData(VkVideoDecodeH264ProfileInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH264CapabilitiesEXT& value);
inline void copyIndirectData(VkVideoDecodeH264SessionParametersAddInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH264SessionParametersCreateInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH264PictureInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH264DpbSlotInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH264MvcInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH265ProfileInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH265CapabilitiesEXT& value);
inline void copyIndirectData(VkVideoDecodeH265SessionParametersAddInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH265SessionParametersCreateInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH265PictureInfoEXT& value);
inline void copyIndirectData(VkVideoDecodeH265DpbSlotInfoEXT& value);
inline void copyIndirectData(VkVideoSessionCreateInfoKHR& value);
inline void copyIndirectData(VkVideoSessionParametersCreateInfoKHR& value);
inline void copyIndirectData(VkVideoSessionParametersUpdateInfoKHR& value);
inline void copyIndirectData(VkVideoBeginCodingInfoKHR& value);
inline void copyIndirectData(VkVideoEndCodingInfoKHR& value);
inline void copyIndirectData(VkVideoCodingControlInfoKHR& value);
inline void copyIndirectData(VkVideoEncodeUsageInfoKHR& value);
inline void copyIndirectData(VkVideoEncodeInfoKHR& value);
inline void copyIndirectData(VkVideoEncodeRateControlInfoKHR& value);
inline void copyIndirectData(VkVideoEncodeRateControlLayerInfoKHR& value);
inline void copyIndirectData(VkVideoEncodeCapabilitiesKHR& value);
inline void copyIndirectData(VkVideoEncodeH264CapabilitiesEXT& value);
inline void copyIndirectData(VkVideoEncodeH264SessionParametersAddInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264SessionParametersCreateInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264DpbSlotInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264VclFrameInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264ReferenceListsInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264EmitPictureParametersInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264ProfileInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264NaluSliceInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264RateControlInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH264QpEXT& value);
inline void copyIndirectData(VkVideoEncodeH264FrameSizeEXT& value);
inline void copyIndirectData(VkVideoEncodeH264RateControlLayerInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265CapabilitiesEXT& value);
inline void copyIndirectData(VkVideoEncodeH265SessionParametersAddInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265SessionParametersCreateInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265VclFrameInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265EmitPictureParametersInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265NaluSliceSegmentInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265RateControlInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265QpEXT& value);
inline void copyIndirectData(VkVideoEncodeH265FrameSizeEXT& value);
inline void copyIndirectData(VkVideoEncodeH265RateControlLayerInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265ProfileInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265DpbSlotInfoEXT& value);
inline void copyIndirectData(VkVideoEncodeH265ReferenceListsInfoEXT& value);
#endif // defined(VK_ENABLE_BETA_EXTENSIONS)
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
inline void copyIndirectData(VkScreenSurfaceCreateInfoQNX& value);
#endif // defined(VK_USE_PLATFORM_SCREEN_QNX)
#if defined(VK_USE_PLATFORM_VI_NN)
inline void copyIndirectData(VkViSurfaceCreateInfoNN& value);
#endif // defined(VK_USE_PLATFORM_VI_NN)
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
inline void copyIndirectData(VkWaylandSurfaceCreateInfoKHR& value);
#endif // defined(VK_USE_PLATFORM_WAYLAND_KHR)
#if defined(VK_USE_PLATFORM_WIN32_KHR)
inline void copyIndirectData(VkWin32SurfaceCreateInfoKHR& value);
inline void copyIndirectData(VkImportMemoryWin32HandleInfoNV& value);
inline void copyIndirectData(VkExportMemoryWin32HandleInfoNV& value);
inline void copyIndirectData(VkWin32KeyedMutexAcquireReleaseInfoNV& value);
inline void copyIndirectData(VkImportMemoryWin32HandleInfoKHR& value);
inline void copyIndirectData(VkExportMemoryWin32HandleInfoKHR& value);
inline void copyIndirectData(VkMemoryWin32HandlePropertiesKHR& value);
inline void copyIndirectData(VkMemoryGetWin32HandleInfoKHR& value);
inline void copyIndirectData(VkWin32KeyedMutexAcquireReleaseInfoKHR& value);
inline void copyIndirectData(VkImportSemaphoreWin32HandleInfoKHR& value);
inline void copyIndirectData(VkExportSemaphoreWin32HandleInfoKHR& value);
inline void copyIndirectData(VkD3D12FenceSubmitInfoKHR& value);
inline void copyIndirectData(VkSemaphoreGetWin32HandleInfoKHR& value);
inline void copyIndirectData(VkImportFenceWin32HandleInfoKHR& value);
inline void copyIndirectData(VkExportFenceWin32HandleInfoKHR& value);
inline void copyIndirectData(VkFenceGetWin32HandleInfoKHR& value);
inline void copyIndirectData(VkSurfaceFullScreenExclusiveInfoEXT& value);
inline void copyIndirectData(VkSurfaceCapabilitiesFullScreenExclusiveEXT& value);
#endif // defined(VK_USE_PLATFORM_WIN32_KHR)
#if defined(VK_USE_PLATFORM_XCB_KHR)
inline void copyIndirectData(VkXcbSurfaceCreateInfoKHR& value);
#endif // defined(VK_USE_PLATFORM_XCB_KHR)
#if defined(VK_USE_PLATFORM_XLIB_KHR)
inline void copyIndirectData(VkXlibSurfaceCreateInfoKHR& value);
#endif // defined(VK_USE_PLATFORM_XLIB_KHR)
inline void copyIndirectData([[maybe_unused]] VkBaseOutStructure& value)
{
if (value.pNext != nullptr)
{
using base_type_t = std::decay_t<struct VkBaseOutStructure>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pNext, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pNext = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBaseInStructure& value)
{
if (value.pNext != nullptr)
{
using base_type_t = std::decay_t<const struct VkBaseInStructure>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pNext, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pNext = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkOffset2D& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkOffset3D& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkExtent2D& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkExtent3D& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkViewport& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRect2D& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkClearRect& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkComponentMapping& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkExtensionProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkLayerProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkApplicationInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pApplicationName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pApplicationName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pApplicationName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pApplicationName = copy;
}
if (value.pEngineName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pEngineName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pEngineName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pEngineName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAllocationCallbacks& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDeviceQueueCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueuePriorities != nullptr)
{
using base_type_t = std::decay_t<const float>;
const std::size_t numElements = value.queueCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueuePriorities, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueuePriorities = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueueCreateInfos != nullptr)
{
using base_type_t = std::decay_t<const VkDeviceQueueCreateInfo>;
const std::size_t numElements = value.queueCreateInfoCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueCreateInfos, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueCreateInfos = copy;
}
if (value.ppEnabledLayerNames != nullptr)
{
using base_type_t = std::decay_t<const char* const>;
const std::size_t numElements = value.enabledLayerCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppEnabledLayerNames, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppEnabledLayerNames = copy;
}
if (value.ppEnabledExtensionNames != nullptr)
{
using base_type_t = std::decay_t<const char* const>;
const std::size_t numElements = value.enabledExtensionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppEnabledExtensionNames, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppEnabledExtensionNames = copy;
}
if (value.pEnabledFeatures != nullptr)
{
using base_type_t = std::decay_t<const VkPhysicalDeviceFeatures>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pEnabledFeatures, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pEnabledFeatures = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkInstanceCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pApplicationInfo != nullptr)
{
using base_type_t = std::decay_t<const VkApplicationInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pApplicationInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pApplicationInfo = copy;
}
if (value.ppEnabledLayerNames != nullptr)
{
using base_type_t = std::decay_t<const char* const>;
const std::size_t numElements = value.enabledLayerCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppEnabledLayerNames, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppEnabledLayerNames = copy;
}
if (value.ppEnabledExtensionNames != nullptr)
{
using base_type_t = std::decay_t<const char* const>;
const std::size_t numElements = value.enabledExtensionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppEnabledExtensionNames, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppEnabledExtensionNames = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMemoryProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMemoryAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryRequirements& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageFormatProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageMemoryRequirements& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMemoryType& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMemoryHeap& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMappedMemoryRange& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFormatProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageFormatProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorBufferInfo& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorImageInfo& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkWriteDescriptorSet& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pImageInfo != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorImageInfo>;
const std::size_t numElements = value.descriptorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImageInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImageInfo = copy;
}
if (value.pBufferInfo != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorBufferInfo>;
const std::size_t numElements = value.descriptorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBufferInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBufferInfo = copy;
}
if (value.pTexelBufferView != nullptr)
{
using base_type_t = std::decay_t<const VkBufferView>;
const std::size_t numElements = value.descriptorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pTexelBufferView, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pTexelBufferView = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCopyDescriptorSet& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueueFamilyIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.queueFamilyIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueFamilyIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueFamilyIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBufferViewCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageSubresource& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageSubresourceLayers& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageSubresourceRange& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMemoryBarrier& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferMemoryBarrier& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageMemoryBarrier& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueueFamilyIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.queueFamilyIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueFamilyIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueFamilyIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSubresourceLayout& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageViewCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCopy& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSparseMemoryBind& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageMemoryBind& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSparseBufferMemoryBindInfo& value)
{
if (value.pBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseMemoryBind>;
const std::size_t numElements = value.bindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBinds = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageOpaqueMemoryBindInfo& value)
{
if (value.pBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseMemoryBind>;
const std::size_t numElements = value.bindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBinds = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageMemoryBindInfo& value)
{
if (value.pBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseImageMemoryBind>;
const std::size_t numElements = value.bindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBinds = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBindSparseInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.waitSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphores = copy;
}
if (value.pBufferBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseBufferMemoryBindInfo>;
const std::size_t numElements = value.bufferBindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBufferBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBufferBinds = copy;
}
if (value.pImageOpaqueBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseImageOpaqueMemoryBindInfo>;
const std::size_t numElements = value.imageOpaqueBindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImageOpaqueBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImageOpaqueBinds = copy;
}
if (value.pImageBinds != nullptr)
{
using base_type_t = std::decay_t<const VkSparseImageMemoryBindInfo>;
const std::size_t numElements = value.imageBindCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImageBinds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImageBinds = copy;
}
if (value.pSignalSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.signalSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphores = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageCopy& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageBlit& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkBufferImageCopy& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkImageResolve& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkShaderModuleCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCode != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.codeSize / 4;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCode, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCode = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetLayoutBinding& value)
{
if (value.pImmutableSamplers != nullptr)
{
using base_type_t = std::decay_t<const VkSampler>;
const std::size_t numElements = value.descriptorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImmutableSamplers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImmutableSamplers = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetLayoutCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pBindings != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorSetLayoutBinding>;
const std::size_t numElements = value.bindingCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBindings, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBindings = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorPoolSize& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorPoolCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPoolSizes != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorPoolSize>;
const std::size_t numElements = value.poolSizeCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPoolSizes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPoolSizes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSetLayouts != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorSetLayout>;
const std::size_t numElements = value.descriptorSetCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSetLayouts, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSetLayouts = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSpecializationMapEntry& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSpecializationInfo& value)
{
if (value.pMapEntries != nullptr)
{
using base_type_t = std::decay_t<const VkSpecializationMapEntry>;
const std::size_t numElements = value.mapEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMapEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMapEntries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineShaderStageCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pName = copy;
}
if (value.pSpecializationInfo != nullptr)
{
using base_type_t = std::decay_t<const VkSpecializationInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSpecializationInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSpecializationInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkComputePipelineCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVertexInputBindingDescription& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkVertexInputAttributeDescription& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineVertexInputStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVertexBindingDescriptions != nullptr)
{
using base_type_t = std::decay_t<const VkVertexInputBindingDescription>;
const std::size_t numElements = value.vertexBindingDescriptionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVertexBindingDescriptions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVertexBindingDescriptions = copy;
}
if (value.pVertexAttributeDescriptions != nullptr)
{
using base_type_t = std::decay_t<const VkVertexInputAttributeDescription>;
const std::size_t numElements = value.vertexAttributeDescriptionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVertexAttributeDescriptions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVertexAttributeDescriptions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineInputAssemblyStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineTessellationStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewports != nullptr)
{
using base_type_t = std::decay_t<const VkViewport>;
const std::size_t numElements = value.viewportCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewports, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewports = copy;
}
if (value.pScissors != nullptr)
{
using base_type_t = std::decay_t<const VkRect2D>;
const std::size_t numElements = value.scissorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pScissors, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pScissors = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineMultisampleStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSampleMask != nullptr)
{
using base_type_t = std::decay_t<const VkSampleMask>;
const std::size_t numElements = (value.rasterizationSamples + 31) / 32;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSampleMask, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSampleMask = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineColorBlendAttachmentState& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineColorBlendStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineColorBlendAttachmentState>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachments = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineDynamicStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDynamicStates != nullptr)
{
using base_type_t = std::decay_t<const VkDynamicState>;
const std::size_t numElements = value.dynamicStateCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDynamicStates, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDynamicStates = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkStencilOpState& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineDepthStencilStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkGraphicsPipelineCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStages != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineShaderStageCreateInfo>;
const std::size_t numElements = value.stageCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStages, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStages = copy;
}
if (value.pVertexInputState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineVertexInputStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVertexInputState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVertexInputState = copy;
}
if (value.pInputAssemblyState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineInputAssemblyStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pInputAssemblyState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pInputAssemblyState = copy;
}
if (value.pTessellationState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineTessellationStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pTessellationState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pTessellationState = copy;
}
if (value.pViewportState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineViewportStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewportState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewportState = copy;
}
if (value.pRasterizationState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineRasterizationStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRasterizationState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRasterizationState = copy;
}
if (value.pMultisampleState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineMultisampleStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMultisampleState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMultisampleState = copy;
}
if (value.pDepthStencilState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineDepthStencilStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDepthStencilState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDepthStencilState = copy;
}
if (value.pColorBlendState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineColorBlendStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorBlendState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorBlendState = copy;
}
if (value.pDynamicState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineDynamicStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDynamicState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDynamicState = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCacheCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCacheHeaderVersionOne& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPushConstantRange& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineLayoutCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSetLayouts != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorSetLayout>;
const std::size_t numElements = value.setLayoutCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSetLayouts, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSetLayouts = copy;
}
if (value.pPushConstantRanges != nullptr)
{
using base_type_t = std::decay_t<const VkPushConstantRange>;
const std::size_t numElements = value.pushConstantRangeCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPushConstantRanges, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPushConstantRanges = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSamplerCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandPoolCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferInheritanceInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pInheritanceInfo != nullptr)
{
using base_type_t = std::decay_t<const VkCommandBufferInheritanceInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pInheritanceInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pInheritanceInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pClearValues != nullptr)
{
using base_type_t = std::decay_t<const VkClearValue>;
const std::size_t numElements = value.clearValueCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pClearValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pClearValues = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkClearDepthStencilValue& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkClearAttachment& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentDescription& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentReference& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSubpassDescription& value)
{
if (value.pInputAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference>;
const std::size_t numElements = value.inputAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pInputAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pInputAttachments = copy;
}
if (value.pColorAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachments = copy;
}
if (value.pResolveAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pResolveAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pResolveAttachments = copy;
}
if (value.pDepthStencilAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDepthStencilAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDepthStencilAttachment = copy;
}
if (value.pPreserveAttachments != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.preserveAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPreserveAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPreserveAttachments = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSubpassDependency& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentDescription>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachments = copy;
}
if (value.pSubpasses != nullptr)
{
using base_type_t = std::decay_t<const VkSubpassDescription>;
const std::size_t numElements = value.subpassCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSubpasses, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSubpasses = copy;
}
if (value.pDependencies != nullptr)
{
using base_type_t = std::decay_t<const VkSubpassDependency>;
const std::size_t numElements = value.dependencyCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDependencies, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDependencies = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkEventCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFenceCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFeatures& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSparseProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceLimits& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueryPoolCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFramebufferCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkImageView>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachments = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDrawIndirectCommand& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDrawIndexedIndirectCommand& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDispatchIndirectCommand& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMultiDrawInfoEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMultiDrawIndexedInfoEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.waitSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphores = copy;
}
if (value.pWaitDstStageMask != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineStageFlags>;
const std::size_t numElements = value.waitSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitDstStageMask, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitDstStageMask = copy;
}
if (value.pCommandBuffers != nullptr)
{
using base_type_t = std::decay_t<const VkCommandBuffer>;
const std::size_t numElements = value.commandBufferCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCommandBuffers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCommandBuffers = copy;
}
if (value.pSignalSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.signalSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphores = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPropertiesKHR& value)
{
if (value.displayName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.displayName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.displayName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.displayName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPlanePropertiesKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDisplayModeParametersKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDisplayModePropertiesKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDisplayModeCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPlaneCapabilitiesKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDisplaySurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPresentInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceCapabilitiesKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceFormatKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSwapchainCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueueFamilyIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.queueFamilyIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueFamilyIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueFamilyIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPresentInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.waitSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphores = copy;
}
if (value.pSwapchains != nullptr)
{
using base_type_t = std::decay_t<const VkSwapchainKHR>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSwapchains, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSwapchains = copy;
}
if (value.pImageIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImageIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImageIndices = copy;
}
if (value.pResults != nullptr)
{
using base_type_t = std::decay_t<VkResult>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pResults, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pResults = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDebugReportCallbackCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkValidationFlagsEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDisabledValidationChecks != nullptr)
{
using base_type_t = std::decay_t<const VkValidationCheckEXT>;
const std::size_t numElements = value.disabledValidationCheckCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDisabledValidationChecks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDisabledValidationChecks = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkValidationFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pEnabledValidationFeatures != nullptr)
{
using base_type_t = std::decay_t<const VkValidationFeatureEnableEXT>;
const std::size_t numElements = value.enabledValidationFeatureCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pEnabledValidationFeatures, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pEnabledValidationFeatures = copy;
}
if (value.pDisabledValidationFeatures != nullptr)
{
using base_type_t = std::decay_t<const VkValidationFeatureDisableEXT>;
const std::size_t numElements = value.disabledValidationFeatureCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDisabledValidationFeatures, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDisabledValidationFeatures = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationStateRasterizationOrderAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDebugMarkerObjectNameInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pObjectName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pObjectName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pObjectName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pObjectName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDebugMarkerObjectTagInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDebugMarkerMarkerInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pMarkerName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pMarkerName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMarkerName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMarkerName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDedicatedAllocationImageCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDedicatedAllocationBufferCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDedicatedAllocationMemoryAllocateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalImageFormatPropertiesNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkExternalMemoryImageCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMemoryAllocateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDevicePrivateDataCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPrivateDataSlotCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePrivateDataFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultiDrawPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkGraphicsShaderGroupCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStages != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineShaderStageCreateInfo>;
const std::size_t numElements = value.stageCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStages, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStages = copy;
}
if (value.pVertexInputState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineVertexInputStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVertexInputState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVertexInputState = copy;
}
if (value.pTessellationState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineTessellationStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pTessellationState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pTessellationState = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pGroups != nullptr)
{
using base_type_t = std::decay_t<const VkGraphicsShaderGroupCreateInfoNV>;
const std::size_t numElements = value.groupCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pGroups, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pGroups = copy;
}
if (value.pPipelines != nullptr)
{
using base_type_t = std::decay_t<const VkPipeline>;
const std::size_t numElements = value.pipelineCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPipelines, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPipelines = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBindShaderGroupIndirectCommandNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkBindIndexBufferIndirectCommandNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkBindVertexBufferIndirectCommandNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSetStateFlagsIndirectCommandNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkIndirectCommandsStreamNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkIndirectCommandsLayoutTokenNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pIndexTypes != nullptr)
{
using base_type_t = std::decay_t<const VkIndexType>;
const std::size_t numElements = value.indexTypeCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pIndexTypes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pIndexTypes = copy;
}
if (value.pIndexTypeValues != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.indexTypeCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pIndexTypeValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pIndexTypeValues = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkIndirectCommandsLayoutCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pTokens != nullptr)
{
using base_type_t = std::decay_t<const VkIndirectCommandsLayoutTokenNV>;
const std::size_t numElements = value.tokenCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pTokens, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pTokens = copy;
}
if (value.pStreamStrides != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.streamCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStreamStrides, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStreamStrides = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkGeneratedCommandsInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStreams != nullptr)
{
using base_type_t = std::decay_t<const VkIndirectCommandsStreamNV>;
const std::size_t numElements = value.streamCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStreams, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStreams = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkGeneratedCommandsMemoryRequirementsInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFeatures2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFormatProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageFormatProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageFormatInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMemoryProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageFormatProperties2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSparseImageFormatInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePushDescriptorPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkConformanceVersion& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDriverProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPresentRegionsKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkPresentRegionKHR>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPresentRegionKHR& value)
{
if (value.pRectangles != nullptr)
{
using base_type_t = std::decay_t<const VkRectLayerKHR>;
const std::size_t numElements = value.rectangleCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRectangles, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRectangles = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRectLayerKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVariablePointersFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalMemoryProperties& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalImageFormatInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalImageFormatProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalBufferInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalBufferProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceIDProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalMemoryImageCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalMemoryBufferCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMemoryAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryFdPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryGetFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalSemaphoreInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalSemaphoreProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportSemaphoreCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportSemaphoreFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreGetFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalFenceInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalFenceProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportFenceCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportFenceFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFenceGetFdInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultiviewFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultiviewProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassMultiviewCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewMasks != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.subpassCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewMasks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewMasks = copy;
}
if (value.pViewOffsets != nullptr)
{
using base_type_t = std::decay_t<const int32_t>;
const std::size_t numElements = value.dependencyCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewOffsets, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewOffsets = copy;
}
if (value.pCorrelationMasks != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.correlationMaskCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCorrelationMasks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCorrelationMasks = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceCapabilities2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPowerInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceEventInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayEventInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSwapchainCounterCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceGroupProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryAllocateFlagsInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindBufferMemoryInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindBufferMemoryDeviceGroupInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDeviceIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.deviceIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDeviceIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDeviceIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBindImageMemoryInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindImageMemoryDeviceGroupInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDeviceIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.deviceIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDeviceIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDeviceIndices = copy;
}
if (value.pSplitInstanceBindRegions != nullptr)
{
using base_type_t = std::decay_t<const VkRect2D>;
const std::size_t numElements = value.splitInstanceBindRegionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSplitInstanceBindRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSplitInstanceBindRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupRenderPassBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDeviceRenderAreas != nullptr)
{
using base_type_t = std::decay_t<const VkRect2D>;
const std::size_t numElements = value.deviceRenderAreaCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDeviceRenderAreas, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDeviceRenderAreas = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupCommandBufferBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphoreDeviceIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.waitSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphoreDeviceIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphoreDeviceIndices = copy;
}
if (value.pCommandBufferDeviceMasks != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.commandBufferCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCommandBufferDeviceMasks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCommandBufferDeviceMasks = copy;
}
if (value.pSignalSemaphoreDeviceIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.signalSemaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphoreDeviceIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphoreDeviceIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupBindSparseInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupPresentCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageSwapchainCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindImageMemorySwapchainInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAcquireNextImageInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupPresentInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDeviceMasks != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDeviceMasks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDeviceMasks = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupDeviceCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPhysicalDevices != nullptr)
{
using base_type_t = std::decay_t<const VkPhysicalDevice>;
const std::size_t numElements = value.physicalDeviceCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPhysicalDevices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPhysicalDevices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDeviceGroupSwapchainCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorUpdateTemplateEntry& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorUpdateTemplateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDescriptorUpdateEntries != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorUpdateTemplateEntry>;
const std::size_t numElements = value.descriptorUpdateEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDescriptorUpdateEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDescriptorUpdateEntries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkXYColorEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePresentIdFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPresentIdKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPresentIds != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPresentIds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPresentIds = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePresentWaitFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkHdrMetadataEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRefreshCycleDurationGOOGLE& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPastPresentationTimingGOOGLE& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPresentTimesInfoGOOGLE& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pTimes != nullptr)
{
using base_type_t = std::decay_t<const VkPresentTimeGOOGLE>;
const std::size_t numElements = value.swapchainCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pTimes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pTimes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPresentTimeGOOGLE& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkViewportWScalingNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportWScalingStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewportWScalings != nullptr)
{
using base_type_t = std::decay_t<const VkViewportWScalingNV>;
const std::size_t numElements = value.viewportCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewportWScalings, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewportWScalings = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkViewportSwizzleNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportSwizzleStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewportSwizzles != nullptr)
{
using base_type_t = std::decay_t<const VkViewportSwizzleNV>;
const std::size_t numElements = value.viewportCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewportSwizzles, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewportSwizzles = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineDiscardRectangleStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDiscardRectangles != nullptr)
{
using base_type_t = std::decay_t<const VkRect2D>;
const std::size_t numElements = value.discardRectangleCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDiscardRectangles, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDiscardRectangles = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkInputAttachmentAspectReference& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassInputAttachmentAspectCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAspectReferences != nullptr)
{
using base_type_t = std::decay_t<const VkInputAttachmentAspectReference>;
const std::size_t numElements = value.aspectReferenceCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAspectReferences, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAspectReferences = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSurfaceInfo2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceCapabilities2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceFormat2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayProperties2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPlaneProperties2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayModeProperties2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPlaneInfo2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDisplayPlaneCapabilities2KHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSharedPresentSurfaceCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevice16BitStorageFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubgroupProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferMemoryRequirementsInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceBufferMemoryRequirements& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCreateInfo != nullptr)
{
using base_type_t = std::decay_t<const VkBufferCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCreateInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCreateInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageMemoryRequirementsInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageSparseMemoryRequirementsInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceImageMemoryRequirements& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCreateInfo != nullptr)
{
using base_type_t = std::decay_t<const VkImageCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCreateInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCreateInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkMemoryRequirements2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSparseImageMemoryRequirements2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePointClippingProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryDedicatedRequirements& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryDedicatedAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageViewUsageCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineTessellationDomainOriginStateCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerYcbcrConversionInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerYcbcrConversionCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindImagePlaneMemoryInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImagePlaneMemoryRequirementsInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerYcbcrConversionImageFormatProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkTextureLODGatherFormatPropertiesAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkConditionalRenderingBeginInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkProtectedSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProtectedMemoryFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProtectedMemoryProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceQueueInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCoverageToColorStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSampleLocationEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSampleLocationsInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSampleLocations != nullptr)
{
using base_type_t = std::decay_t<const VkSampleLocationEXT>;
const std::size_t numElements = value.sampleLocationsCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSampleLocations, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSampleLocations = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentSampleLocationsEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkSubpassSampleLocationsEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassSampleLocationsBeginInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachmentInitialSampleLocations != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentSampleLocationsEXT>;
const std::size_t numElements = value.attachmentInitialSampleLocationsCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachmentInitialSampleLocations, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachmentInitialSampleLocations = copy;
}
if (value.pPostSubpassSampleLocations != nullptr)
{
using base_type_t = std::decay_t<const VkSubpassSampleLocationsEXT>;
const std::size_t numElements = value.postSubpassSampleLocationsCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPostSubpassSampleLocations, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPostSubpassSampleLocations = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineSampleLocationsStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMultisamplePropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerReductionModeCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultiDrawFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceInlineUniformBlockFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceInlineUniformBlockProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkWriteDescriptorSetInlineUniformBlock& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorPoolInlineUniformBlockCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCoverageModulationStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCoverageModulationTable != nullptr)
{
using base_type_t = std::decay_t<const float>;
const std::size_t numElements = value.coverageModulationTableCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCoverageModulationTable, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCoverageModulationTable = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageFormatListCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewFormats != nullptr)
{
using base_type_t = std::decay_t<const VkFormat>;
const std::size_t numElements = value.viewFormatCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewFormats, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewFormats = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkValidationCacheCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkShaderModuleValidationCacheCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMaintenance3Properties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMaintenance4Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMaintenance4Properties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetLayoutSupport& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderDrawParametersFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderFloat16Int8Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFloatControlsProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceHostQueryResetFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkShaderResourceUsageAMD& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkShaderStatisticsInfoAMD& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyGlobalPriorityPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDebugUtilsObjectNameInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pObjectName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pObjectName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pObjectName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pObjectName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDebugUtilsObjectTagInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDebugUtilsLabelEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pLabelName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pLabelName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLabelName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLabelName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDebugUtilsMessengerCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDebugUtilsMessengerCallbackDataEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pMessageIdName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pMessageIdName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMessageIdName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMessageIdName = copy;
}
if (value.pMessage != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pMessage) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMessage, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMessage = copy;
}
if (value.pQueueLabels != nullptr)
{
using base_type_t = std::decay_t<const VkDebugUtilsLabelEXT>;
const std::size_t numElements = value.queueLabelCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueLabels, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueLabels = copy;
}
if (value.pCmdBufLabels != nullptr)
{
using base_type_t = std::decay_t<const VkDebugUtilsLabelEXT>;
const std::size_t numElements = value.cmdBufLabelCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCmdBufLabels, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCmdBufLabels = copy;
}
if (value.pObjects != nullptr)
{
using base_type_t = std::decay_t<const VkDebugUtilsObjectNameInfoEXT>;
const std::size_t numElements = value.objectCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pObjects, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pObjects = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceDeviceMemoryReportCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceMemoryReportCallbackDataEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryHostPointerInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryHostPointerPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCalibratedTimestampInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderCorePropertiesAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderCoreProperties2AMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDescriptorIndexingFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDescriptorIndexingProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pBindingFlags != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorBindingFlags>;
const std::size_t numElements = value.bindingCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBindingFlags, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBindingFlags = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDescriptorCounts != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.descriptorSetCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDescriptorCounts, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDescriptorCounts = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentDescription2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentReference2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassDescription2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pInputAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
const std::size_t numElements = value.inputAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pInputAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pInputAttachments = copy;
}
if (value.pColorAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachments = copy;
}
if (value.pResolveAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pResolveAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pResolveAttachments = copy;
}
if (value.pDepthStencilAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDepthStencilAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDepthStencilAttachment = copy;
}
if (value.pPreserveAttachments != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.preserveAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPreserveAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPreserveAttachments = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSubpassDependency2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassCreateInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentDescription2>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachments = copy;
}
if (value.pSubpasses != nullptr)
{
using base_type_t = std::decay_t<const VkSubpassDescription2>;
const std::size_t numElements = value.subpassCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSubpasses, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSubpasses = copy;
}
if (value.pDependencies != nullptr)
{
using base_type_t = std::decay_t<const VkSubpassDependency2>;
const std::size_t numElements = value.dependencyCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDependencies, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDependencies = copy;
}
if (value.pCorrelatedViewMasks != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.correlatedViewMaskCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCorrelatedViewMasks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCorrelatedViewMasks = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSubpassBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassEndInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTimelineSemaphoreFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTimelineSemaphoreProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreTypeCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkTimelineSemaphoreSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphoreValues != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.waitSemaphoreValueCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphoreValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphoreValues = copy;
}
if (value.pSignalSemaphoreValues != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.signalSemaphoreValueCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphoreValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphoreValues = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreWaitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSemaphores != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphore>;
const std::size_t numElements = value.semaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSemaphores, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSemaphores = copy;
}
if (value.pValues != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.semaphoreCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pValues = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreSignalInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVertexInputBindingDivisorDescriptionEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVertexBindingDivisors != nullptr)
{
using base_type_t = std::decay_t<const VkVertexInputBindingDivisorDescriptionEXT>;
const std::size_t numElements = value.vertexBindingDivisorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVertexBindingDivisors, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVertexBindingDivisors = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevice8BitStorageFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkanMemoryModelFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderAtomicInt64Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyCheckpointPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCheckpointDataNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDepthStencilResolveProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassDescriptionDepthStencilResolve& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDepthStencilResolveAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDepthStencilResolveAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDepthStencilResolveAttachment = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageViewASTCDecodeModeEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationStateStreamCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pExclusiveScissors != nullptr)
{
using base_type_t = std::decay_t<const VkRect2D>;
const std::size_t numElements = value.exclusiveScissorCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pExclusiveScissors, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pExclusiveScissors = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkShadingRatePaletteNV& value)
{
if (value.pShadingRatePaletteEntries != nullptr)
{
using base_type_t = std::decay_t<const VkShadingRatePaletteEntryNV>;
const std::size_t numElements = value.shadingRatePaletteEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pShadingRatePaletteEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pShadingRatePaletteEntries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pShadingRatePalettes != nullptr)
{
using base_type_t = std::decay_t<const VkShadingRatePaletteNV>;
const std::size_t numElements = value.viewportCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pShadingRatePalettes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pShadingRatePalettes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShadingRateImageFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShadingRateImagePropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCoarseSampleLocationNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkCoarseSampleOrderCustomNV& value)
{
if (value.pSampleLocations != nullptr)
{
using base_type_t = std::decay_t<const VkCoarseSampleLocationNV>;
const std::size_t numElements = value.sampleLocationCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSampleLocations, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSampleLocations = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCustomSampleOrders != nullptr)
{
using base_type_t = std::decay_t<const VkCoarseSampleOrderCustomNV>;
const std::size_t numElements = value.customSampleOrderCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCustomSampleOrders, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCustomSampleOrders = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMeshShaderFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMeshShaderPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDrawMeshTasksIndirectCommandNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRayTracingShaderGroupCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRayTracingShaderGroupCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRayTracingPipelineCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStages != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineShaderStageCreateInfo>;
const std::size_t numElements = value.stageCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStages, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStages = copy;
}
if (value.pGroups != nullptr)
{
using base_type_t = std::decay_t<const VkRayTracingShaderGroupCreateInfoNV>;
const std::size_t numElements = value.groupCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pGroups, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pGroups = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRayTracingPipelineCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStages != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineShaderStageCreateInfo>;
const std::size_t numElements = value.stageCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStages, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStages = copy;
}
if (value.pGroups != nullptr)
{
using base_type_t = std::decay_t<const VkRayTracingShaderGroupCreateInfoKHR>;
const std::size_t numElements = value.groupCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pGroups, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pGroups = copy;
}
if (value.pLibraryInfo != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineLibraryCreateInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLibraryInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLibraryInfo = copy;
}
if (value.pLibraryInterface != nullptr)
{
using base_type_t = std::decay_t<const VkRayTracingPipelineInterfaceCreateInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLibraryInterface, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLibraryInterface = copy;
}
if (value.pDynamicState != nullptr)
{
using base_type_t = std::decay_t<const VkPipelineDynamicStateCreateInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDynamicState, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDynamicState = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkGeometryTrianglesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkGeometryAABBNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkGeometryDataNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkGeometryNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pGeometries != nullptr)
{
using base_type_t = std::decay_t<const VkGeometryNV>;
const std::size_t numElements = value.geometryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pGeometries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pGeometries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindAccelerationStructureMemoryInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDeviceIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.deviceIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDeviceIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDeviceIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkWriteDescriptorSetAccelerationStructureKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAccelerationStructures != nullptr)
{
using base_type_t = std::decay_t<const VkAccelerationStructureKHR>;
const std::size_t numElements = value.accelerationStructureCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAccelerationStructures, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAccelerationStructures = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkWriteDescriptorSetAccelerationStructureNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAccelerationStructures != nullptr)
{
using base_type_t = std::decay_t<const VkAccelerationStructureNV>;
const std::size_t numElements = value.accelerationStructureCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAccelerationStructures, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAccelerationStructures = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureMemoryRequirementsInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayQueryFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayTracingPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkStridedDeviceAddressRegionKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkTraceRaysIndirectCommandKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkTraceRaysIndirectCommand2KHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDrmFormatModifierPropertiesListEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDrmFormatModifierProperties != nullptr)
{
using base_type_t = std::decay_t<VkDrmFormatModifierPropertiesEXT>;
const std::size_t numElements = value.drmFormatModifierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDrmFormatModifierProperties, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDrmFormatModifierProperties = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDrmFormatModifierPropertiesEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pQueueFamilyIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.queueFamilyIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pQueueFamilyIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pQueueFamilyIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageDrmFormatModifierListCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDrmFormatModifiers != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.drmFormatModifierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDrmFormatModifiers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDrmFormatModifiers = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPlaneLayouts != nullptr)
{
using base_type_t = std::decay_t<const VkSubresourceLayout>;
const std::size_t numElements = value.drmFormatModifierPlaneCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPlaneLayouts, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPlaneLayouts = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageDrmFormatModifierPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageStencilUsageCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceMemoryOverallocationCreateInfoAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassFragmentDensityMapCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pFragmentDensityOffsets != nullptr)
{
using base_type_t = std::decay_t<const VkOffset2D>;
const std::size_t numElements = value.fragmentDensityOffsetCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pFragmentDensityOffsets, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pFragmentDensityOffsets = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceScalarBlockLayoutFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceProtectedCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryPriorityAllocateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceBufferDeviceAddressFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferDeviceAddressInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferOpaqueCaptureAddressCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferDeviceAddressCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFilterCubicImageViewImageFormatPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImagelessFramebufferFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFramebufferAttachmentsCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachmentImageInfos != nullptr)
{
using base_type_t = std::decay_t<const VkFramebufferAttachmentImageInfo>;
const std::size_t numElements = value.attachmentImageInfoCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachmentImageInfos, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachmentImageInfos = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkFramebufferAttachmentImageInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewFormats != nullptr)
{
using base_type_t = std::decay_t<const VkFormat>;
const std::size_t numElements = value.viewFormatCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewFormats, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewFormats = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassAttachmentBeginInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkImageView>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttachments = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCooperativeMatrixPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageViewHandleInfoNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageViewAddressPropertiesNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCreationFeedback& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCreationFeedbackCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPipelineCreationFeedback != nullptr)
{
using base_type_t = std::decay_t<VkPipelineCreationFeedback>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPipelineCreationFeedback, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPipelineCreationFeedback = copy;
}
if (value.pPipelineStageCreationFeedbacks != nullptr)
{
using base_type_t = std::decay_t<VkPipelineCreationFeedback>;
const std::size_t numElements = value.pipelineStageCreationFeedbackCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPipelineStageCreationFeedbacks, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPipelineStageCreationFeedbacks = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceCounterKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceCounterDescriptionKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueryPoolPerformanceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pCounterIndices != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.counterIndexCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCounterIndices, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCounterIndices = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAcquireProfilingLockInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceQuerySubmitInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkHeadlessSurfaceCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCoverageReductionStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFramebufferMixedSamplesCombinationNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceValueINTEL& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkInitializePerformanceApiInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceMarkerInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceStreamMarkerInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceOverrideInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPerformanceConfigurationAcquireInfoINTEL& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderClockFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentReferenceStencilLayout& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentDescriptionStencilLayout& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineExecutablePropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineExecutableInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineExecutableStatisticKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineExecutableInternalRepresentationKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceTexelBufferAlignmentProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubgroupSizeControlFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubgroupSizeControlProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassShadingPipelineCreateInfoHUAWEI& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryOpaqueCaptureAddressAllocateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceMemoryOpaqueCaptureAddressInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationLineStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan11Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan11Properties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan12Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan12Properties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan13Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVulkan13Properties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineCompilerControlCreateInfoAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceToolProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerCustomBorderColorCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureGeometryTrianglesDataKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureGeometryAabbsDataKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureGeometryInstancesDataKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureGeometryKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureBuildGeometryInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pGeometries != nullptr)
{
using base_type_t = std::decay_t<const VkAccelerationStructureGeometryKHR>;
const std::size_t numElements = value.geometryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pGeometries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pGeometries = copy;
}
if (value.ppGeometries != nullptr)
{
using base_type_t = std::decay_t<const VkAccelerationStructureGeometryKHR* const>;
const std::size_t numElements = value.geometryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppGeometries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppGeometries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureBuildRangeInfoKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAabbPositionsKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkTransformMatrixKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureInstanceKHR& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureDeviceAddressInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureVersionInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVersionData != nullptr)
{
using base_type_t = std::decay_t<const uint8_t>;
const std::size_t numElements = 2 * VK_UUID_SIZE;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVersionData, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVersionData = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCopyAccelerationStructureInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCopyAccelerationStructureToMemoryInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCopyMemoryToAccelerationStructureInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRayTracingPipelineInterfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineLibraryCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pLibraries != nullptr)
{
using base_type_t = std::decay_t<const VkPipeline>;
const std::size_t numElements = value.libraryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLibraries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLibraries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassTransformBeginInfoQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCopyCommandTransformInfoQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDeviceDiagnosticsConfigCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRobustness2FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRobustness2PropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageRobustnessFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevice4444FormatsFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCopy2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageCopy2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageBlit2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferImageCopy2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageResolve2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCopyBufferInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkBufferCopy2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCopyImageInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkImageCopy2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBlitImageInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkImageBlit2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCopyBufferToImageInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkBufferImageCopy2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCopyImageToBufferInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkBufferImageCopy2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkResolveImageInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRegions != nullptr)
{
using base_type_t = std::decay_t<const VkImageResolve2>;
const std::size_t numElements = value.regionCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRegions, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRegions = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFragmentShadingRateAttachmentInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pFragmentShadingRateAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkAttachmentReference2>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pFragmentShadingRateAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pFragmentShadingRateAttachment = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShadingRateKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureBuildSizesInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMutableDescriptorTypeListVALVE& value)
{
if (value.pDescriptorTypes != nullptr)
{
using base_type_t = std::decay_t<const VkDescriptorType>;
const std::size_t numElements = value.descriptorTypeCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDescriptorTypes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDescriptorTypes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkMutableDescriptorTypeCreateInfoVALVE& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pMutableDescriptorTypeLists != nullptr)
{
using base_type_t = std::decay_t<const VkMutableDescriptorTypeListVALVE>;
const std::size_t numElements = value.mutableDescriptorTypeListCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMutableDescriptorTypeLists, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMutableDescriptorTypeLists = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineViewportDepthClipControlCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVertexInputBindingDescription2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVertexInputAttributeDescription2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineColorWriteCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorWriteEnables != nullptr)
{
using base_type_t = std::decay_t<const VkBool32>;
const std::size_t numElements = value.attachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorWriteEnables, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorWriteEnables = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkMemoryBarrier2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageMemoryBarrier2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferMemoryBarrier2& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDependencyInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pMemoryBarriers != nullptr)
{
using base_type_t = std::decay_t<const VkMemoryBarrier2>;
const std::size_t numElements = value.memoryBarrierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMemoryBarriers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMemoryBarriers = copy;
}
if (value.pBufferMemoryBarriers != nullptr)
{
using base_type_t = std::decay_t<const VkBufferMemoryBarrier2>;
const std::size_t numElements = value.bufferMemoryBarrierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pBufferMemoryBarriers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pBufferMemoryBarriers = copy;
}
if (value.pImageMemoryBarriers != nullptr)
{
using base_type_t = std::decay_t<const VkImageMemoryBarrier2>;
const std::size_t numElements = value.imageMemoryBarrierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pImageMemoryBarriers, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pImageMemoryBarriers = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferSubmitInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubmitInfo2& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphoreInfos != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphoreSubmitInfo>;
const std::size_t numElements = value.waitSemaphoreInfoCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphoreInfos, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphoreInfos = copy;
}
if (value.pCommandBufferInfos != nullptr)
{
using base_type_t = std::decay_t<const VkCommandBufferSubmitInfo>;
const std::size_t numElements = value.commandBufferInfoCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCommandBufferInfos, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCommandBufferInfos = copy;
}
if (value.pSignalSemaphoreInfos != nullptr)
{
using base_type_t = std::decay_t<const VkSemaphoreSubmitInfo>;
const std::size_t numElements = value.signalSemaphoreInfoCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphoreInfos, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphoreInfos = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyCheckpointProperties2NV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCheckpointData2NV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSynchronization2Features& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubpassResolvePerformanceQueryEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMultisampledRenderToSingleSampledInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferInheritanceViewportScissorInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pViewportDepths != nullptr)
{
using base_type_t = std::decay_t<const VkViewport>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pViewportDepths, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pViewportDepths = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCuModuleCreateInfoNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCuFunctionCreateInfoNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pName != nullptr)
{
using base_type_t = std::decay_t<const char>;
const std::size_t numElements = std::strlen(value.pName) + 1;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pName, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pName = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkCuLaunchInfoNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderIntegerDotProductProperties& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDrmPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureMotionInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSRTDataNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureSRTMotionInstanceNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureMatrixMotionInstanceNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkAccelerationStructureMotionInstanceNV& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkMemoryGetRemoteAddressInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkFormatProperties3& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDrmFormatModifierPropertiesList2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pDrmFormatModifierProperties != nullptr)
{
using base_type_t = std::decay_t<VkDrmFormatModifierProperties2EXT>;
const std::size_t numElements = value.drmFormatModifierCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDrmFormatModifierProperties, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDrmFormatModifierProperties = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkDrmFormatModifierProperties2EXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRenderingCreateInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorAttachmentFormats != nullptr)
{
using base_type_t = std::decay_t<const VkFormat>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachmentFormats, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachmentFormats = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRenderingInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorAttachments != nullptr)
{
using base_type_t = std::decay_t<const VkRenderingAttachmentInfo>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachments, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachments = copy;
}
if (value.pDepthAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkRenderingAttachmentInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pDepthAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pDepthAttachment = copy;
}
if (value.pStencilAttachment != nullptr)
{
using base_type_t = std::decay_t<const VkRenderingAttachmentInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStencilAttachment, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStencilAttachment = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRenderingAttachmentInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDynamicRenderingFeatures& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkCommandBufferInheritanceRenderingInfo& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorAttachmentFormats != nullptr)
{
using base_type_t = std::decay_t<const VkFormat>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachmentFormats, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachmentFormats = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAttachmentSampleCountInfoAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorAttachmentSamples != nullptr)
{
using base_type_t = std::decay_t<const VkSampleCountFlagBits>;
const std::size_t numElements = value.colorAttachmentCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorAttachmentSamples, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorAttachmentSamples = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkMultiviewPerViewAttributesInfoNVX& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageViewMinLodCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkGraphicsPipelineLibraryCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetBindingReferenceVALVE& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkDescriptorSetLayoutHostMappingInfoVALVE& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pIdentifier != nullptr)
{
using base_type_t = std::decay_t<const uint8_t>;
const std::size_t numElements = value.identifierSize;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pIdentifier, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pIdentifier = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkShaderModuleIdentifierEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageCompressionControlEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pFixedRateFlags != nullptr)
{
using base_type_t = std::decay_t<VkImageCompressionFixedRateFlagsEXT>;
const std::size_t numElements = value.compressionControlPlaneCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pFixedRateFlags, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pFixedRateFlags = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageCompressionPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageSubresource2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSubresourceLayout2EXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassCreationControlEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassCreationFeedbackInfoEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassCreationFeedbackCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pRenderPassFeedback != nullptr)
{
using base_type_t = std::decay_t<VkRenderPassCreationFeedbackInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pRenderPassFeedback, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pRenderPassFeedback = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassSubpassFeedbackInfoEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkRenderPassSubpassFeedbackCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSubpassFeedback != nullptr)
{
using base_type_t = std::decay_t<VkRenderPassSubpassFeedbackInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSubpassFeedback, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSubpassFeedback = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelinePropertiesIdentifierEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPipelineRobustnessCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
inline void copyIndirectData([[maybe_unused]] VkAndroidSurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.window != nullptr)
{
using base_type_t = std::decay_t<struct ANativeWindow>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.window, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.window = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkNativeBufferUsage2ANDROID& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkNativeBufferANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSwapchainImageCreateInfoANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePresentationPropertiesANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportAndroidHardwareBufferInfoANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.buffer != nullptr)
{
using base_type_t = std::decay_t<struct AHardwareBuffer>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.buffer, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.buffer = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkAndroidHardwareBufferUsageANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAndroidHardwareBufferPropertiesANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkAndroidHardwareBufferFormatPropertiesANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExternalFormatANDROID& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_ANDROID_KHR)
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
inline void copyIndirectData([[maybe_unused]] VkDirectFBSurfaceCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.dfb != nullptr)
{
using base_type_t = std::decay_t<IDirectFB>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.dfb, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.dfb = copy;
}
if (value.surface != nullptr)
{
using base_type_t = std::decay_t<IDirectFBSurface>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.surface, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.surface = copy;
}
}
#endif // defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#if defined(VK_USE_PLATFORM_FUCHSIA)
inline void copyIndirectData([[maybe_unused]] VkImagePipeSurfaceCreateInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryZirconHandleInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryZirconHandlePropertiesFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryGetZirconHandleInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryBufferCollectionFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCollectionImageCreateInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCollectionBufferCreateInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCollectionCreateInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferCollectionPropertiesFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBufferConstraintsInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSysmemColorSpaceFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImageFormatConstraintsInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pColorSpaces != nullptr)
{
using base_type_t = std::decay_t<const VkSysmemColorSpaceFUCHSIA>;
const std::size_t numElements = value.colorSpaceCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pColorSpaces, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pColorSpaces = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImageConstraintsInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pFormatConstraints != nullptr)
{
using base_type_t = std::decay_t<const VkImageFormatConstraintsInfoFUCHSIA>;
const std::size_t numElements = value.formatConstraintsCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pFormatConstraints, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pFormatConstraints = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkBufferCollectionConstraintsInfoFUCHSIA& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_FUCHSIA)
#if defined(VK_USE_PLATFORM_GGP)
inline void copyIndirectData([[maybe_unused]] VkStreamDescriptorSurfaceCreateInfoGGP& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPresentFrameTokenGGP& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_GGP)
#if defined(VK_USE_PLATFORM_IOS_MVK)
inline void copyIndirectData([[maybe_unused]] VkIOSSurfaceCreateInfoMVK& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_IOS_MVK)
#if defined(VK_USE_PLATFORM_MACOS_MVK)
inline void copyIndirectData([[maybe_unused]] VkMacOSSurfaceCreateInfoMVK& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_MACOS_MVK)
#if defined(VK_USE_PLATFORM_METAL_EXT)
inline void copyIndirectData([[maybe_unused]] VkMetalSurfaceCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pLayer != nullptr)
{
using base_type_t = std::decay_t<const CAMetalLayer>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLayer, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLayer = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalObjectCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalObjectsInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalDeviceInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalCommandQueueInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalBufferInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMetalBufferInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalTextureInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMetalTextureInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalIOSurfaceInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMetalIOSurfaceInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMetalSharedEventInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMetalSharedEventInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_METAL_EXT)
#if defined(VK_ENABLE_BETA_EXTENSIONS)
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyVideoPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkQueueFamilyQueryResultStatusPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoProfileListInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pProfiles != nullptr)
{
using base_type_t = std::decay_t<const VkVideoProfileInfoKHR>;
const std::size_t numElements = value.profileCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pProfiles, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pProfiles = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkPhysicalDeviceVideoFormatInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoFormatPropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoProfileInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoSessionMemoryRequirementsKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkBindVideoSessionMemoryInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoPictureResourceInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoReferenceSlotInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pPictureResource != nullptr)
{
using base_type_t = std::decay_t<const VkVideoPictureResourceInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPictureResource, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPictureResource = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeUsageInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSetupReferenceSlot != nullptr)
{
using base_type_t = std::decay_t<const VkVideoReferenceSlotInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSetupReferenceSlot, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSetupReferenceSlot = copy;
}
if (value.pReferenceSlots != nullptr)
{
using base_type_t = std::decay_t<const VkVideoReferenceSlotInfoKHR>;
const std::size_t numElements = value.referenceSlotCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceSlots, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceSlots = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264ProfileInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264CapabilitiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264SessionParametersAddInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH264SequenceParameterSet>;
const std::size_t numElements = value.spsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSpsStd = copy;
}
if (value.pPpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH264PictureParameterSet>;
const std::size_t numElements = value.ppsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPpsStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pParametersAddInfo != nullptr)
{
using base_type_t = std::decay_t<const VkVideoDecodeH264SessionParametersAddInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pParametersAddInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pParametersAddInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264PictureInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdPictureInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoDecodeH264PictureInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdPictureInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdPictureInfo = copy;
}
if (value.pSlicesDataOffsets != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.slicesCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSlicesDataOffsets, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSlicesDataOffsets = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264DpbSlotInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdReferenceInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoDecodeH264ReferenceInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdReferenceInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdReferenceInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH264MvcInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdMvc != nullptr)
{
using base_type_t = std::decay_t<const StdVideoDecodeH264Mvc>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdMvc, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdMvc = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265ProfileInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265CapabilitiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265SessionParametersAddInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265VideoParameterSet>;
const std::size_t numElements = value.vpsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVpsStd = copy;
}
if (value.pSpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265SequenceParameterSet>;
const std::size_t numElements = value.spsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSpsStd = copy;
}
if (value.pPpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265PictureParameterSet>;
const std::size_t numElements = value.ppsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPpsStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pParametersAddInfo != nullptr)
{
using base_type_t = std::decay_t<const VkVideoDecodeH265SessionParametersAddInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pParametersAddInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pParametersAddInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265PictureInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdPictureInfo != nullptr)
{
using base_type_t = std::decay_t<StdVideoDecodeH265PictureInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdPictureInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdPictureInfo = copy;
}
if (value.pSlicesDataOffsets != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.slicesCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSlicesDataOffsets, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSlicesDataOffsets = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoDecodeH265DpbSlotInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdReferenceInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoDecodeH265ReferenceInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdReferenceInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdReferenceInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoSessionCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVideoProfile != nullptr)
{
using base_type_t = std::decay_t<const VkVideoProfileInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVideoProfile, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVideoProfile = copy;
}
if (value.pStdHeaderVersion != nullptr)
{
using base_type_t = std::decay_t<const VkExtensionProperties>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdHeaderVersion, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdHeaderVersion = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoSessionParametersCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoSessionParametersUpdateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoBeginCodingInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceSlots != nullptr)
{
using base_type_t = std::decay_t<const VkVideoReferenceSlotInfoKHR>;
const std::size_t numElements = value.referenceSlotCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceSlots, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceSlots = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEndCodingInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoCodingControlInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeUsageInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSetupReferenceSlot != nullptr)
{
using base_type_t = std::decay_t<const VkVideoReferenceSlotInfoKHR>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSetupReferenceSlot, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSetupReferenceSlot = copy;
}
if (value.pReferenceSlots != nullptr)
{
using base_type_t = std::decay_t<const VkVideoReferenceSlotInfoKHR>;
const std::size_t numElements = value.referenceSlotCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceSlots, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceSlots = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeRateControlInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pLayerConfigs != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeRateControlLayerInfoKHR>;
const std::size_t numElements = value.layerCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pLayerConfigs, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pLayerConfigs = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeRateControlLayerInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeCapabilitiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264CapabilitiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264SessionParametersAddInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pSpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH264SequenceParameterSet>;
const std::size_t numElements = value.spsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSpsStd = copy;
}
if (value.pPpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH264PictureParameterSet>;
const std::size_t numElements = value.ppsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPpsStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pParametersAddInfo != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264SessionParametersAddInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pParametersAddInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pParametersAddInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264DpbSlotInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdReferenceInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH264ReferenceInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdReferenceInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdReferenceInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264VclFrameInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceFinalLists != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264ReferenceListsInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceFinalLists, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceFinalLists = copy;
}
if (value.pNaluSliceEntries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264NaluSliceInfoEXT>;
const std::size_t numElements = value.naluSliceEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pNaluSliceEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pNaluSliceEntries = copy;
}
if (value.pCurrentPictureInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH264PictureInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCurrentPictureInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCurrentPictureInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264ReferenceListsInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceList0Entries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264DpbSlotInfoEXT>;
const std::size_t numElements = value.referenceList0EntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceList0Entries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceList0Entries = copy;
}
if (value.pReferenceList1Entries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264DpbSlotInfoEXT>;
const std::size_t numElements = value.referenceList1EntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceList1Entries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceList1Entries = copy;
}
if (value.pMemMgmtCtrlOperations != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH264RefMemMgmtCtrlOperations>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pMemMgmtCtrlOperations, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pMemMgmtCtrlOperations = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264EmitPictureParametersInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.ppsIdEntries != nullptr)
{
using base_type_t = std::decay_t<const uint8_t>;
const std::size_t numElements = value.ppsIdEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppsIdEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppsIdEntries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264ProfileInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264NaluSliceInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceFinalLists != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH264ReferenceListsInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceFinalLists, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceFinalLists = copy;
}
if (value.pSliceHeaderStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH264SliceHeader>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSliceHeaderStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSliceHeaderStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264RateControlInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264QpEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264FrameSizeEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH264RateControlLayerInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265CapabilitiesEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265SessionParametersAddInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pVpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265VideoParameterSet>;
const std::size_t numElements = value.vpsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pVpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pVpsStd = copy;
}
if (value.pSpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265SequenceParameterSet>;
const std::size_t numElements = value.spsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSpsStd = copy;
}
if (value.pPpsStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoH265PictureParameterSet>;
const std::size_t numElements = value.ppsStdCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pPpsStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pPpsStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pParametersAddInfo != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265SessionParametersAddInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pParametersAddInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pParametersAddInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265VclFrameInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceFinalLists != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265ReferenceListsInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceFinalLists, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceFinalLists = copy;
}
if (value.pNaluSliceSegmentEntries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265NaluSliceSegmentInfoEXT>;
const std::size_t numElements = value.naluSliceSegmentEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pNaluSliceSegmentEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pNaluSliceSegmentEntries = copy;
}
if (value.pCurrentPictureInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH265PictureInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pCurrentPictureInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pCurrentPictureInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265EmitPictureParametersInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.ppsIdEntries != nullptr)
{
using base_type_t = std::decay_t<const uint8_t>;
const std::size_t numElements = value.ppsIdEntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.ppsIdEntries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.ppsIdEntries = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265NaluSliceSegmentInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceFinalLists != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265ReferenceListsInfoEXT>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceFinalLists, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceFinalLists = copy;
}
if (value.pSliceSegmentHeaderStd != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH265SliceSegmentHeader>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSliceSegmentHeaderStd, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSliceSegmentHeaderStd = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265RateControlInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265QpEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265FrameSizeEXT& value)
{
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265RateControlLayerInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265ProfileInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265DpbSlotInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pStdReferenceInfo != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH265ReferenceInfo>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pStdReferenceInfo, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pStdReferenceInfo = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkVideoEncodeH265ReferenceListsInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pReferenceList0Entries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265DpbSlotInfoEXT>;
const std::size_t numElements = value.referenceList0EntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceList0Entries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceList0Entries = copy;
}
if (value.pReferenceList1Entries != nullptr)
{
using base_type_t = std::decay_t<const VkVideoEncodeH265DpbSlotInfoEXT>;
const std::size_t numElements = value.referenceList1EntryCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceList1Entries, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceList1Entries = copy;
}
if (value.pReferenceModifications != nullptr)
{
using base_type_t = std::decay_t<const StdVideoEncodeH265ReferenceModifications>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReferenceModifications, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReferenceModifications = copy;
}
}
#endif // defined(VK_ENABLE_BETA_EXTENSIONS)
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
inline void copyIndirectData([[maybe_unused]] VkScreenSurfaceCreateInfoQNX& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.context != nullptr)
{
using base_type_t = std::decay_t<struct _screen_context>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.context, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.context = copy;
}
if (value.window != nullptr)
{
using base_type_t = std::decay_t<struct _screen_window>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.window, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.window = copy;
}
}
#endif // defined(VK_USE_PLATFORM_SCREEN_QNX)
#if defined(VK_USE_PLATFORM_VI_NN)
inline void copyIndirectData([[maybe_unused]] VkViSurfaceCreateInfoNN& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_VI_NN)
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
inline void copyIndirectData([[maybe_unused]] VkWaylandSurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.display != nullptr)
{
using base_type_t = std::decay_t<struct wl_display>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.display, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.display = copy;
}
if (value.surface != nullptr)
{
using base_type_t = std::decay_t<struct wl_surface>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.surface, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.surface = copy;
}
}
#endif // defined(VK_USE_PLATFORM_WAYLAND_KHR)
#if defined(VK_USE_PLATFORM_WIN32_KHR)
inline void copyIndirectData([[maybe_unused]] VkWin32SurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryWin32HandleInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMemoryWin32HandleInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttributes != nullptr)
{
using base_type_t = std::decay_t<const SECURITY_ATTRIBUTES>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttributes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttributes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkWin32KeyedMutexAcquireReleaseInfoNV& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAcquireSyncs != nullptr)
{
using base_type_t = std::decay_t<const VkDeviceMemory>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireSyncs, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireSyncs = copy;
}
if (value.pAcquireKeys != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireKeys, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireKeys = copy;
}
if (value.pAcquireTimeoutMilliseconds != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireTimeoutMilliseconds, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireTimeoutMilliseconds = copy;
}
if (value.pReleaseSyncs != nullptr)
{
using base_type_t = std::decay_t<const VkDeviceMemory>;
const std::size_t numElements = value.releaseCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReleaseSyncs, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReleaseSyncs = copy;
}
if (value.pReleaseKeys != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.releaseCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReleaseKeys, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReleaseKeys = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImportMemoryWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportMemoryWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttributes != nullptr)
{
using base_type_t = std::decay_t<const SECURITY_ATTRIBUTES>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttributes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttributes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkMemoryWin32HandlePropertiesKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkMemoryGetWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAcquireSyncs != nullptr)
{
using base_type_t = std::decay_t<const VkDeviceMemory>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireSyncs, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireSyncs = copy;
}
if (value.pAcquireKeys != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireKeys, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireKeys = copy;
}
if (value.pAcquireTimeouts != nullptr)
{
using base_type_t = std::decay_t<const uint32_t>;
const std::size_t numElements = value.acquireCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAcquireTimeouts, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAcquireTimeouts = copy;
}
if (value.pReleaseSyncs != nullptr)
{
using base_type_t = std::decay_t<const VkDeviceMemory>;
const std::size_t numElements = value.releaseCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReleaseSyncs, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReleaseSyncs = copy;
}
if (value.pReleaseKeys != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.releaseCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pReleaseKeys, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pReleaseKeys = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkImportSemaphoreWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportSemaphoreWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttributes != nullptr)
{
using base_type_t = std::decay_t<const SECURITY_ATTRIBUTES>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttributes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttributes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkD3D12FenceSubmitInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pWaitSemaphoreValues != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.waitSemaphoreValuesCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pWaitSemaphoreValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pWaitSemaphoreValues = copy;
}
if (value.pSignalSemaphoreValues != nullptr)
{
using base_type_t = std::decay_t<const uint64_t>;
const std::size_t numElements = value.signalSemaphoreValuesCount;
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pSignalSemaphoreValues, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pSignalSemaphoreValues = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkSemaphoreGetWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkImportFenceWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkExportFenceWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.pAttributes != nullptr)
{
using base_type_t = std::decay_t<const SECURITY_ATTRIBUTES>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.pAttributes, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.pAttributes = copy;
}
}
inline void copyIndirectData([[maybe_unused]] VkFenceGetWin32HandleInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceFullScreenExclusiveInfoEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
inline void copyIndirectData([[maybe_unused]] VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
{
value.pNext = copyNextPtr(value.pNext);
}
#endif // defined(VK_USE_PLATFORM_WIN32_KHR)
#if defined(VK_USE_PLATFORM_XCB_KHR)
inline void copyIndirectData([[maybe_unused]] VkXcbSurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.connection != nullptr)
{
using base_type_t = std::decay_t<xcb_connection_t>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.connection, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.connection = copy;
}
}
#endif // defined(VK_USE_PLATFORM_XCB_KHR)
#if defined(VK_USE_PLATFORM_XLIB_KHR)
inline void copyIndirectData([[maybe_unused]] VkXlibSurfaceCreateInfoKHR& value)
{
value.pNext = copyNextPtr(value.pNext);
if (value.dpy != nullptr)
{
using base_type_t = std::decay_t<Display>;
static constexpr std::size_t numElements = 1; // TODO
auto copy = allocType<base_type_t>(numElements);
std::memcpy(copy, value.dpy, numElements * sizeof(base_type_t));
for (std::size_t ele = 0; ele < numElements; ++ele) {
copyIndirectData(copy[ele]);
}
value.dpy = copy;
}
}
#endif // defined(VK_USE_PLATFORM_XLIB_KHR)
inline void variantWrap(VkInstance value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_INSTANCE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPhysicalDevice value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PHYSICAL_DEVICE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDevice value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DEVICE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkQueue value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_QUEUE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkCommandBuffer value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_COMMAND_BUFFER;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDeviceMemory value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DEVICE_MEMORY;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkCommandPool value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_COMMAND_POOL;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkBuffer value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_BUFFER;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkBufferView value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_BUFFER_VIEW;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkImage value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_IMAGE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkImageView value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_IMAGE_VIEW;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkShaderModule value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SHADER_MODULE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPipeline value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PIPELINE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPipelineLayout value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PIPELINE_LAYOUT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkSampler value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SAMPLER;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDescriptorSet value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DESCRIPTOR_SET;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDescriptorSetLayout value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDescriptorPool value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DESCRIPTOR_POOL;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkFence value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_FENCE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkSemaphore value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SEMAPHORE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkEvent value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_EVENT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkQueryPool value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_QUERY_POOL;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkFramebuffer value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_FRAMEBUFFER;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkRenderPass value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_RENDER_PASS;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPipelineCache value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PIPELINE_CACHE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkIndirectCommandsLayoutNV value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDescriptorUpdateTemplate value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkSamplerYcbcrConversion value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkValidationCacheEXT value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkAccelerationStructureKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkAccelerationStructureNV value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPerformanceConfigurationINTEL value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDeferredOperationKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkPrivateDataSlot value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkCuModuleNVX value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_CU_MODULE_NVX;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkCuFunctionNVX value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_CU_FUNCTION_NVX;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDisplayKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DISPLAY_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDisplayModeKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DISPLAY_MODE_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkSurfaceKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SURFACE_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkSwapchainKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_SWAPCHAIN_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDebugReportCallbackEXT value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkDebugUtilsMessengerEXT value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT;
outVariant.objectValue.value = value;
}
inline void variantWrap(const VkBaseOutStructure& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkBaseOutStructure>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBaseOutStructure));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBaseInStructure& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBaseInStructure>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBaseInStructure));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkApplicationInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkApplicationInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkApplicationInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceQueueCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceQueueCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceQueueCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkInstanceCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkInstanceCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkInstanceCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMappedMemoryRange& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMappedMemoryRange>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMappedMemoryRange));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWriteDescriptorSet& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWriteDescriptorSet>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWriteDescriptorSet));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyDescriptorSet& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyDescriptorSet>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyDescriptorSet));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferViewCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferViewCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferViewCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryBarrier& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryBarrier>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryBarrier));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferMemoryBarrier& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferMemoryBarrier>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferMemoryBarrier));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageMemoryBarrier& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageMemoryBarrier>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageMemoryBarrier));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindSparseInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindSparseInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindSparseInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkShaderModuleCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkShaderModuleCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkShaderModuleCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetLayoutCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetLayoutCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetLayoutCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorPoolCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorPoolCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorPoolCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineShaderStageCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineShaderStageCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineShaderStageCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkComputePipelineCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkComputePipelineCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkComputePipelineCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineVertexInputStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineVertexInputStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineVertexInputStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineInputAssemblyStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineInputAssemblyStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineInputAssemblyStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineTessellationStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineTessellationStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineTessellationStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineMultisampleStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineMultisampleStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineMultisampleStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineColorBlendStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineColorBlendStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineColorBlendStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineDynamicStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineDynamicStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineDynamicStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineDepthStencilStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineDepthStencilStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineDepthStencilStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGraphicsPipelineCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGraphicsPipelineCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGraphicsPipelineCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCacheCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCacheCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCacheCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineLayoutCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineLayoutCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineLayoutCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandPoolCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandPoolCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandPoolCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferInheritanceInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferInheritanceInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferInheritanceInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkEventCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkEventCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkEventCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFenceCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFenceCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFenceCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueryPoolCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueryPoolCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueryPoolCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFramebufferCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFramebufferCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFramebufferCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayModeCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayModeCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayModeCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplaySurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplaySurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplaySurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayPresentInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayPresentInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayPresentInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSwapchainCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSwapchainCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSwapchainCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPresentInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPresentInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPresentInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugReportCallbackCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugReportCallbackCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugReportCallbackCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkValidationFlagsEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkValidationFlagsEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkValidationFlagsEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkValidationFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkValidationFeaturesEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkValidationFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationStateRasterizationOrderAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationStateRasterizationOrderAMD>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationStateRasterizationOrderAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugMarkerObjectNameInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugMarkerObjectNameInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugMarkerObjectNameInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugMarkerObjectTagInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugMarkerObjectTagInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugMarkerObjectTagInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugMarkerMarkerInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugMarkerMarkerInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugMarkerMarkerInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDedicatedAllocationImageCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDedicatedAllocationImageCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDedicatedAllocationImageCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDedicatedAllocationBufferCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDedicatedAllocationBufferCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDedicatedAllocationBufferCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDedicatedAllocationMemoryAllocateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDedicatedAllocationMemoryAllocateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDedicatedAllocationMemoryAllocateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalMemoryImageCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalMemoryImageCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalMemoryImageCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMemoryAllocateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMemoryAllocateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMemoryAllocateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDevicePrivateDataCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDevicePrivateDataCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDevicePrivateDataCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPrivateDataSlotCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPrivateDataSlotCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPrivateDataSlotCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePrivateDataFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePrivateDataFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePrivateDataFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultiDrawPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultiDrawPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGraphicsShaderGroupCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGraphicsShaderGroupCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGraphicsShaderGroupCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGraphicsPipelineShaderGroupsCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGraphicsPipelineShaderGroupsCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkIndirectCommandsLayoutTokenNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkIndirectCommandsLayoutTokenNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkIndirectCommandsLayoutTokenNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkIndirectCommandsLayoutCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkIndirectCommandsLayoutCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkIndirectCommandsLayoutCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGeneratedCommandsInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGeneratedCommandsInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGeneratedCommandsInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGeneratedCommandsMemoryRequirementsInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGeneratedCommandsMemoryRequirementsInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGeneratedCommandsMemoryRequirementsInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFeatures2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFeatures2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFeatures2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFormatProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkFormatProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFormatProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageFormatProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageFormatProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageFormatProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageFormatInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageFormatInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageFormatInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMemoryProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMemoryProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMemoryProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSparseImageFormatProperties2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSparseImageFormatProperties2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSparseImageFormatProperties2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSparseImageFormatInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSparseImageFormatInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSparseImageFormatInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePushDescriptorPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePushDescriptorPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDriverProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDriverProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDriverProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPresentRegionsKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPresentRegionsKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPresentRegionsKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVariablePointersFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVariablePointersFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVariablePointersFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalImageFormatInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalImageFormatInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalImageFormatInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalImageFormatProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalImageFormatProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalImageFormatProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalBufferInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalBufferInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalBufferInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalBufferProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalBufferProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalBufferProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceIDProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceIDProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceIDProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalMemoryImageCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalMemoryImageCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalMemoryImageCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalMemoryBufferCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalMemoryBufferCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalMemoryBufferCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMemoryAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMemoryAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMemoryAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryFdPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryFdPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryFdPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryGetFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryGetFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryGetFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalSemaphoreInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalSemaphoreInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalSemaphoreInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalSemaphoreProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalSemaphoreProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalSemaphoreProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportSemaphoreCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportSemaphoreCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportSemaphoreCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportSemaphoreFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportSemaphoreFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportSemaphoreFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreGetFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreGetFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreGetFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalFenceInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalFenceInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalFenceInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalFenceProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalFenceProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalFenceProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportFenceCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportFenceCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportFenceCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportFenceFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportFenceFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportFenceFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFenceGetFdInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFenceGetFdInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFenceGetFdInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultiviewFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultiviewFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultiviewFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultiviewProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultiviewProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultiviewProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassMultiviewCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassMultiviewCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassMultiviewCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceCapabilities2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceCapabilities2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceCapabilities2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayPowerInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayPowerInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayPowerInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceEventInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceEventInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceEventInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayEventInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayEventInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayEventInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSwapchainCounterCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSwapchainCounterCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSwapchainCounterCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceGroupProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceGroupProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceGroupProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryAllocateFlagsInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryAllocateFlagsInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryAllocateFlagsInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindBufferMemoryInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindBufferMemoryInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindBufferMemoryInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindBufferMemoryDeviceGroupInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindBufferMemoryDeviceGroupInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindBufferMemoryDeviceGroupInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindImageMemoryInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindImageMemoryInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindImageMemoryInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindImageMemoryDeviceGroupInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindImageMemoryDeviceGroupInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindImageMemoryDeviceGroupInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupRenderPassBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupRenderPassBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupRenderPassBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupCommandBufferBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupCommandBufferBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupCommandBufferBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupBindSparseInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupBindSparseInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupBindSparseInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupPresentCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupPresentCapabilitiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupPresentCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageSwapchainCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageSwapchainCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageSwapchainCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindImageMemorySwapchainInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindImageMemorySwapchainInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindImageMemorySwapchainInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAcquireNextImageInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAcquireNextImageInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAcquireNextImageInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupPresentInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupPresentInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupPresentInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupDeviceCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupDeviceCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupDeviceCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceGroupSwapchainCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceGroupSwapchainCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceGroupSwapchainCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorUpdateTemplateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorUpdateTemplateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorUpdateTemplateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePresentIdFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePresentIdFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePresentIdFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPresentIdKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPresentIdKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPresentIdKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePresentWaitFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePresentWaitFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePresentWaitFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkHdrMetadataEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkHdrMetadataEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkHdrMetadataEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayNativeHdrSurfaceCapabilitiesAMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSwapchainDisplayNativeHdrCreateInfoAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSwapchainDisplayNativeHdrCreateInfoAMD>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPresentTimesInfoGOOGLE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPresentTimesInfoGOOGLE>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPresentTimesInfoGOOGLE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportWScalingStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportWScalingStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportWScalingStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportSwizzleStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportSwizzleStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportSwizzleStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDiscardRectanglePropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineDiscardRectangleStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineDiscardRectangleStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassInputAttachmentAspectCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassInputAttachmentAspectCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassInputAttachmentAspectCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSurfaceInfo2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSurfaceInfo2KHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSurfaceInfo2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceCapabilities2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceCapabilities2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceCapabilities2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceFormat2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceFormat2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceFormat2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayProperties2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayProperties2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayProperties2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayPlaneProperties2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayPlaneProperties2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayPlaneProperties2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayModeProperties2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayModeProperties2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayModeProperties2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayPlaneInfo2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayPlaneInfo2KHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayPlaneInfo2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDisplayPlaneCapabilities2KHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDisplayPlaneCapabilities2KHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDisplayPlaneCapabilities2KHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSharedPresentSurfaceCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSharedPresentSurfaceCapabilitiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSharedPresentSurfaceCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevice16BitStorageFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevice16BitStorageFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevice16BitStorageFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubgroupProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubgroupProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubgroupProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferMemoryRequirementsInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferMemoryRequirementsInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferMemoryRequirementsInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceBufferMemoryRequirements& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceBufferMemoryRequirements>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceBufferMemoryRequirements));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageMemoryRequirementsInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageMemoryRequirementsInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageMemoryRequirementsInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageSparseMemoryRequirementsInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageSparseMemoryRequirementsInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageSparseMemoryRequirementsInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceImageMemoryRequirements& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceImageMemoryRequirements>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceImageMemoryRequirements));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryRequirements2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryRequirements2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryRequirements2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSparseImageMemoryRequirements2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSparseImageMemoryRequirements2>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSparseImageMemoryRequirements2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePointClippingProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePointClippingProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePointClippingProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryDedicatedRequirements& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryDedicatedRequirements>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryDedicatedRequirements));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryDedicatedAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryDedicatedAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryDedicatedAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewUsageCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewUsageCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewUsageCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineTessellationDomainOriginStateCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineTessellationDomainOriginStateCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineTessellationDomainOriginStateCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerYcbcrConversionInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerYcbcrConversionInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerYcbcrConversionInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerYcbcrConversionCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerYcbcrConversionCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerYcbcrConversionCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindImagePlaneMemoryInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindImagePlaneMemoryInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindImagePlaneMemoryInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImagePlaneMemoryRequirementsInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImagePlaneMemoryRequirementsInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImagePlaneMemoryRequirementsInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerYcbcrConversionImageFormatProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerYcbcrConversionImageFormatProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerYcbcrConversionImageFormatProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkTextureLODGatherFormatPropertiesAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkTextureLODGatherFormatPropertiesAMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkTextureLODGatherFormatPropertiesAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkConditionalRenderingBeginInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkConditionalRenderingBeginInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkConditionalRenderingBeginInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkProtectedSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkProtectedSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkProtectedSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceProtectedMemoryFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceProtectedMemoryFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceProtectedMemoryProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceProtectedMemoryProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceProtectedMemoryProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceQueueInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceQueueInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceQueueInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCoverageToColorStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCoverageToColorStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCoverageToColorStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSamplerFilterMinmaxProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSamplerFilterMinmaxProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSampleLocationsInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSampleLocationsInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSampleLocationsInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassSampleLocationsBeginInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassSampleLocationsBeginInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassSampleLocationsBeginInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineSampleLocationsStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineSampleLocationsStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineSampleLocationsStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSampleLocationsPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSampleLocationsPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMultisamplePropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMultisamplePropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMultisamplePropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerReductionModeCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerReductionModeCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerReductionModeCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultiDrawFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultiDrawFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineColorBlendAdvancedStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceInlineUniformBlockFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceInlineUniformBlockFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceInlineUniformBlockProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceInlineUniformBlockProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceInlineUniformBlockProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWriteDescriptorSetInlineUniformBlock& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWriteDescriptorSetInlineUniformBlock>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWriteDescriptorSetInlineUniformBlock));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorPoolInlineUniformBlockCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorPoolInlineUniformBlockCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCoverageModulationStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCoverageModulationStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCoverageModulationStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageFormatListCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageFormatListCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageFormatListCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkValidationCacheCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkValidationCacheCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkValidationCacheCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkShaderModuleValidationCacheCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkShaderModuleValidationCacheCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkShaderModuleValidationCacheCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMaintenance3Properties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMaintenance3Properties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMaintenance3Properties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMaintenance4Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMaintenance4Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMaintenance4Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMaintenance4Properties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMaintenance4Properties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMaintenance4Properties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetLayoutSupport& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetLayoutSupport>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetLayoutSupport));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderDrawParametersFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderDrawParametersFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderFloat16Int8Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderFloat16Int8Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFloatControlsProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFloatControlsProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFloatControlsProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceHostQueryResetFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceHostQueryResetFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceQueueGlobalPriorityCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceQueueGlobalPriorityCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyGlobalPriorityPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyGlobalPriorityPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugUtilsObjectNameInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugUtilsObjectNameInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugUtilsObjectNameInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugUtilsObjectTagInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugUtilsObjectTagInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugUtilsObjectTagInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugUtilsLabelEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugUtilsLabelEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugUtilsLabelEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugUtilsMessengerCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugUtilsMessengerCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugUtilsMessengerCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDebugUtilsMessengerCallbackDataEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDebugUtilsMessengerCallbackDataEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDebugUtilsMessengerCallbackDataEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceDeviceMemoryReportCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceDeviceMemoryReportCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceMemoryReportCallbackDataEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceMemoryReportCallbackDataEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceMemoryReportCallbackDataEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryHostPointerInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryHostPointerInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryHostPointerInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryHostPointerPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryHostPointerPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryHostPointerPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCalibratedTimestampInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCalibratedTimestampInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCalibratedTimestampInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderCorePropertiesAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderCorePropertiesAMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderCorePropertiesAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderCoreProperties2AMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderCoreProperties2AMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderCoreProperties2AMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationConservativeStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationConservativeStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDescriptorIndexingFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDescriptorIndexingFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDescriptorIndexingProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDescriptorIndexingProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDescriptorIndexingProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetLayoutBindingFlagsCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetLayoutBindingFlagsCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetVariableDescriptorCountAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetVariableDescriptorCountAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetVariableDescriptorCountLayoutSupport& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetVariableDescriptorCountLayoutSupport>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAttachmentDescription2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAttachmentDescription2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAttachmentDescription2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAttachmentReference2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAttachmentReference2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAttachmentReference2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassDescription2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassDescription2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassDescription2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassDependency2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassDependency2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassDependency2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassCreateInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassCreateInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassCreateInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassEndInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassEndInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassEndInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTimelineSemaphoreFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTimelineSemaphoreFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTimelineSemaphoreProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTimelineSemaphoreProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTimelineSemaphoreProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreTypeCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreTypeCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreTypeCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkTimelineSemaphoreSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkTimelineSemaphoreSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkTimelineSemaphoreSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreWaitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreWaitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreWaitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreSignalInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreSignalInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreSignalInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineVertexInputDivisorStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineVertexInputDivisorStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePCIBusInfoPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePCIBusInfoPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferInheritanceConditionalRenderingInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevice8BitStorageFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevice8BitStorageFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevice8BitStorageFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkanMemoryModelFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkanMemoryModelFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderAtomicInt64Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderAtomicInt64Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyCheckpointPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyCheckpointPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyCheckpointPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCheckpointDataNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkCheckpointDataNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCheckpointDataNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDepthStencilResolveProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDepthStencilResolveProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDepthStencilResolveProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassDescriptionDepthStencilResolve& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassDescriptionDepthStencilResolve>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassDescriptionDepthStencilResolve));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewASTCDecodeModeEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewASTCDecodeModeEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewASTCDecodeModeEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceASTCDecodeFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceASTCDecodeFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTransformFeedbackPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationStateStreamCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationStateStreamCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRepresentativeFragmentTestStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExclusiveScissorFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportExclusiveScissorStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCornerSampledImageFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportShadingRateImageStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportShadingRateImageStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShadingRateImageFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShadingRateImageFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShadingRateImagePropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShadingRateImagePropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMeshShaderFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMeshShaderFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMeshShaderFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMeshShaderPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMeshShaderPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMeshShaderPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRayTracingShaderGroupCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRayTracingShaderGroupCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRayTracingShaderGroupCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRayTracingShaderGroupCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRayTracingShaderGroupCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRayTracingShaderGroupCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRayTracingPipelineCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRayTracingPipelineCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRayTracingPipelineCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRayTracingPipelineCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRayTracingPipelineCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRayTracingPipelineCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGeometryTrianglesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGeometryTrianglesNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGeometryTrianglesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGeometryAABBNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGeometryAABBNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGeometryAABBNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGeometryNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkGeometryNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGeometryNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindAccelerationStructureMemoryInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindAccelerationStructureMemoryInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindAccelerationStructureMemoryInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWriteDescriptorSetAccelerationStructureKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWriteDescriptorSetAccelerationStructureKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWriteDescriptorSetAccelerationStructureKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWriteDescriptorSetAccelerationStructureNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWriteDescriptorSetAccelerationStructureNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWriteDescriptorSetAccelerationStructureNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureMemoryRequirementsInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureMemoryRequirementsInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureMemoryRequirementsInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayQueryFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayQueryFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayQueryFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceAccelerationStructurePropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayTracingPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayTracingPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayTracingPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDrmFormatModifierPropertiesListEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDrmFormatModifierPropertiesListEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDrmFormatModifierPropertiesListEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageDrmFormatModifierListCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageDrmFormatModifierListCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageDrmFormatModifierListCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageDrmFormatModifierExplicitCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageDrmFormatModifierExplicitCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageDrmFormatModifierPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageDrmFormatModifierPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageDrmFormatModifierPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageStencilUsageCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageStencilUsageCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageStencilUsageCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceMemoryOverallocationCreateInfoAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceMemoryOverallocationCreateInfoAMD>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceMemoryOverallocationCreateInfoAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassFragmentDensityMapCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassFragmentDensityMapCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassFragmentDensityMapOffsetEndInfoQCOM>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceScalarBlockLayoutFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceScalarBlockLayoutFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceProtectedCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceProtectedCapabilitiesKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceProtectedCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationDepthClipStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMemoryBudgetPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryPriorityAllocateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryPriorityAllocateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryPriorityAllocateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceBufferDeviceAddressFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceBufferDeviceAddressFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferDeviceAddressInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferDeviceAddressInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferDeviceAddressInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferOpaqueCaptureAddressCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferOpaqueCaptureAddressCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferOpaqueCaptureAddressCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferDeviceAddressCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferDeviceAddressCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferDeviceAddressCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageViewImageFormatInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageViewImageFormatInfoEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFilterCubicImageViewImageFormatPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkFilterCubicImageViewImageFormatPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImagelessFramebufferFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImagelessFramebufferFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFramebufferAttachmentsCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFramebufferAttachmentsCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFramebufferAttachmentsCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFramebufferAttachmentImageInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFramebufferAttachmentImageInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFramebufferAttachmentImageInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassAttachmentBeginInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassAttachmentBeginInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassAttachmentBeginInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCooperativeMatrixPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCooperativeMatrixPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkCooperativeMatrixPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCooperativeMatrixPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewHandleInfoNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewHandleInfoNVX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewHandleInfoNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewAddressPropertiesNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewAddressPropertiesNVX>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewAddressPropertiesNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCreationFeedbackCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCreationFeedbackCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCreationFeedbackCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePerformanceQueryFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePerformanceQueryPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePerformanceQueryPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceCounterKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceCounterKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceCounterKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceCounterDescriptionKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceCounterDescriptionKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceCounterDescriptionKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueryPoolPerformanceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueryPoolPerformanceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueryPoolPerformanceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAcquireProfilingLockInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAcquireProfilingLockInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAcquireProfilingLockInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceQuerySubmitInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceQuerySubmitInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceQuerySubmitInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkHeadlessSurfaceCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkHeadlessSurfaceCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkHeadlessSurfaceCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCoverageReductionStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCoverageReductionStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCoverageReductionStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFramebufferMixedSamplesCombinationNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkFramebufferMixedSamplesCombinationNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFramebufferMixedSamplesCombinationNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkInitializePerformanceApiInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkInitializePerformanceApiInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkInitializePerformanceApiInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueryPoolPerformanceQueryCreateInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueryPoolPerformanceQueryCreateInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceMarkerInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceMarkerInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceMarkerInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceStreamMarkerInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceStreamMarkerInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceStreamMarkerInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceOverrideInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceOverrideInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceOverrideInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPerformanceConfigurationAcquireInfoINTEL& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPerformanceConfigurationAcquireInfoINTEL>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPerformanceConfigurationAcquireInfoINTEL));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderClockFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderClockFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAttachmentReferenceStencilLayout& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkAttachmentReferenceStencilLayout>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAttachmentReferenceStencilLayout));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAttachmentDescriptionStencilLayout& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkAttachmentDescriptionStencilLayout>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAttachmentDescriptionStencilLayout));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineExecutablePropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineExecutablePropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineExecutablePropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineExecutableInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineExecutableInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineExecutableInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineExecutableStatisticKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineExecutableStatisticKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineExecutableStatisticKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineExecutableInternalRepresentationKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineExecutableInternalRepresentationKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineExecutableInternalRepresentationKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceTexelBufferAlignmentProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceTexelBufferAlignmentProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubgroupSizeControlFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubgroupSizeControlFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubgroupSizeControlProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubgroupSizeControlProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubgroupSizeControlProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassShadingPipelineCreateInfoHUAWEI& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassShadingPipelineCreateInfoHUAWEI>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryOpaqueCaptureAddressAllocateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryOpaqueCaptureAddressAllocateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceMemoryOpaqueCaptureAddressInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceMemoryOpaqueCaptureAddressInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceMemoryOpaqueCaptureAddressInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceLineRasterizationFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceLineRasterizationPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceLineRasterizationPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationLineStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationLineStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationLineStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePipelineCreationCacheControlFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePipelineCreationCacheControlFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan11Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan11Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan11Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan11Properties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan11Properties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan11Properties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan12Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan12Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan12Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan12Properties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan12Properties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan12Properties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan13Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan13Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan13Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVulkan13Properties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVulkan13Properties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVulkan13Properties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineCompilerControlCreateInfoAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineCompilerControlCreateInfoAMD>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineCompilerControlCreateInfoAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceToolProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceToolProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceToolProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerCustomBorderColorCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerCustomBorderColorCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerCustomBorderColorCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCustomBorderColorPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSamplerBorderColorComponentMappingCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSamplerBorderColorComponentMappingCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureGeometryTrianglesDataKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureGeometryTrianglesDataKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureGeometryTrianglesDataKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureGeometryAabbsDataKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureGeometryAabbsDataKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureGeometryAabbsDataKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureGeometryInstancesDataKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureGeometryInstancesDataKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureGeometryInstancesDataKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureGeometryKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureGeometryKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureGeometryKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureBuildGeometryInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureBuildGeometryInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureBuildGeometryInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureDeviceAddressInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureDeviceAddressInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureDeviceAddressInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureVersionInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureVersionInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureVersionInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyAccelerationStructureInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyAccelerationStructureInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyAccelerationStructureInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyAccelerationStructureToMemoryInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyAccelerationStructureToMemoryInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyAccelerationStructureToMemoryInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyMemoryToAccelerationStructureInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyMemoryToAccelerationStructureInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyMemoryToAccelerationStructureInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRayTracingPipelineInterfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRayTracingPipelineInterfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRayTracingPipelineInterfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineLibraryCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineLibraryCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineLibraryCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassTransformBeginInfoQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassTransformBeginInfoQCOM>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassTransformBeginInfoQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyCommandTransformInfoQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyCommandTransformInfoQCOM>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyCommandTransformInfoQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDeviceDiagnosticsConfigCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDeviceDiagnosticsConfigCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDeviceDiagnosticsConfigCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRobustness2FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRobustness2FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRobustness2PropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRobustness2PropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRobustness2PropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageRobustnessFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageRobustnessFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevice4444FormatsFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevice4444FormatsFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCopy2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCopy2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCopy2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageCopy2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageCopy2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageCopy2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageBlit2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageBlit2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageBlit2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferImageCopy2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferImageCopy2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferImageCopy2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageResolve2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageResolve2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageResolve2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyBufferInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyBufferInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyBufferInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyImageInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyImageInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyImageInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBlitImageInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBlitImageInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBlitImageInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyBufferToImageInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyBufferToImageInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyBufferToImageInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCopyImageToBufferInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCopyImageToBufferInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCopyImageToBufferInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkResolveImageInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkResolveImageInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkResolveImageInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFragmentShadingRateAttachmentInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFragmentShadingRateAttachmentInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFragmentShadingRateAttachmentInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineFragmentShadingRateStateCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineFragmentShadingRateStateCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShadingRateKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShadingRateKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShadingRateKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderTerminateInvocationFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderTerminateInvocationFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineFragmentShadingRateEnumStateCreateInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureBuildSizesInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureBuildSizesInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureBuildSizesInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMutableDescriptorTypeCreateInfoVALVE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMutableDescriptorTypeCreateInfoVALVE>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMutableDescriptorTypeCreateInfoVALVE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDepthClipControlFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDepthClipControlFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineViewportDepthClipControlCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineViewportDepthClipControlCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVertexInputBindingDescription2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVertexInputBindingDescription2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVertexInputBindingDescription2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVertexInputAttributeDescription2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVertexInputAttributeDescription2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVertexInputAttributeDescription2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineColorWriteCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineColorWriteCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineColorWriteCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryBarrier2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryBarrier2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryBarrier2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageMemoryBarrier2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageMemoryBarrier2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageMemoryBarrier2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferMemoryBarrier2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferMemoryBarrier2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferMemoryBarrier2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDependencyInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDependencyInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDependencyInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferSubmitInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferSubmitInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferSubmitInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubmitInfo2& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubmitInfo2>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubmitInfo2));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyCheckpointProperties2NV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyCheckpointProperties2NV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyCheckpointProperties2NV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCheckpointData2NV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkCheckpointData2NV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCheckpointData2NV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSynchronization2Features& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSynchronization2Features>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSynchronization2Features));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubpassResolvePerformanceQueryEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubpassResolvePerformanceQueryEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubpassResolvePerformanceQueryEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMultisampledRenderToSingleSampledInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMultisampledRenderToSingleSampledInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMultisampledRenderToSingleSampledInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferInheritanceViewportScissorInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferInheritanceViewportScissorInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferInheritanceViewportScissorInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceProvokingVertexFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceProvokingVertexFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceProvokingVertexPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceProvokingVertexPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCuModuleCreateInfoNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCuModuleCreateInfoNVX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCuModuleCreateInfoNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCuFunctionCreateInfoNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCuFunctionCreateInfoNVX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCuFunctionCreateInfoNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCuLaunchInfoNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCuLaunchInfoNVX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCuLaunchInfoNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderIntegerDotProductFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderIntegerDotProductFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderIntegerDotProductProperties& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderIntegerDotProductProperties>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDrmPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDrmPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDrmPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureGeometryMotionTrianglesDataNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureGeometryMotionTrianglesDataNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAccelerationStructureMotionInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAccelerationStructureMotionInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAccelerationStructureMotionInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryGetRemoteAddressInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryGetRemoteAddressInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryGetRemoteAddressInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFormatProperties3& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkFormatProperties3>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFormatProperties3));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDrmFormatModifierPropertiesList2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDrmFormatModifierPropertiesList2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDrmFormatModifierPropertiesList2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRenderingCreateInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRenderingCreateInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRenderingCreateInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderingInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderingInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderingInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderingAttachmentInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderingAttachmentInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderingAttachmentInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderingFragmentShadingRateAttachmentInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderingFragmentShadingRateAttachmentInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderingFragmentDensityMapAttachmentInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderingFragmentDensityMapAttachmentInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDynamicRenderingFeatures& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDynamicRenderingFeatures>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkCommandBufferInheritanceRenderingInfo& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkCommandBufferInheritanceRenderingInfo>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkCommandBufferInheritanceRenderingInfo));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAttachmentSampleCountInfoAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAttachmentSampleCountInfoAMD>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAttachmentSampleCountInfoAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMultiviewPerViewAttributesInfoNVX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMultiviewPerViewAttributesInfoNVX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMultiviewPerViewAttributesInfoNVX));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageViewMinLodCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageViewMinLodCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageViewMinLodCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkGraphicsPipelineLibraryCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkGraphicsPipelineLibraryCreateInfoEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkGraphicsPipelineLibraryCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetBindingReferenceVALVE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetBindingReferenceVALVE>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetBindingReferenceVALVE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkDescriptorSetLayoutHostMappingInfoVALVE& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkDescriptorSetLayoutHostMappingInfoVALVE>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDescriptorSetLayoutHostMappingInfoVALVE));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineShaderStageModuleIdentifierCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkShaderModuleIdentifierEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkShaderModuleIdentifierEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkShaderModuleIdentifierEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageCompressionControlEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageCompressionControlEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageCompressionControlEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageCompressionPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageCompressionPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageCompressionPropertiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageSubresource2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageSubresource2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageSubresource2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSubresourceLayout2EXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSubresourceLayout2EXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSubresourceLayout2EXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassCreationControlEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassCreationControlEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassCreationControlEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassCreationFeedbackCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassCreationFeedbackCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassCreationFeedbackCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkRenderPassSubpassFeedbackCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkRenderPassSubpassFeedbackCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelinePropertiesIdentifierEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelinePropertiesIdentifierEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelinePropertiesIdentifierEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPipelineRobustnessCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPipelineRobustnessCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPipelineRobustnessCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePipelineRobustnessPropertiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT));
copyIndirectData(*valueCopy);
}
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
inline void variantWrap(const VkAndroidSurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkAndroidSurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAndroidSurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkNativeBufferANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkNativeBufferANDROID>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkNativeBufferANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSwapchainImageCreateInfoANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSwapchainImageCreateInfoANDROID>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSwapchainImageCreateInfoANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePresentationPropertiesANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePresentationPropertiesANDROID>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePresentationPropertiesANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportAndroidHardwareBufferInfoANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportAndroidHardwareBufferInfoANDROID>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportAndroidHardwareBufferInfoANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAndroidHardwareBufferUsageANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkAndroidHardwareBufferUsageANDROID>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAndroidHardwareBufferUsageANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAndroidHardwareBufferPropertiesANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkAndroidHardwareBufferPropertiesANDROID>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAndroidHardwareBufferPropertiesANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryGetAndroidHardwareBufferInfoANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryGetAndroidHardwareBufferInfoANDROID>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryGetAndroidHardwareBufferInfoANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkAndroidHardwareBufferFormatPropertiesANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkAndroidHardwareBufferFormatPropertiesANDROID>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkAndroidHardwareBufferFormatPropertiesANDROID));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExternalFormatANDROID& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkExternalFormatANDROID>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExternalFormatANDROID));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_ANDROID_KHR)
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
inline void variantWrap(const VkDirectFBSurfaceCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkDirectFBSurfaceCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkDirectFBSurfaceCreateInfoEXT));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#if defined(VK_USE_PLATFORM_FUCHSIA)
inline void variantWrap(VkBufferCollectionFUCHSIA value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA;
outVariant.objectValue.value = value;
}
inline void variantWrap(const VkImagePipeSurfaceCreateInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImagePipeSurfaceCreateInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImagePipeSurfaceCreateInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryZirconHandleInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryZirconHandleInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryZirconHandleInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryZirconHandlePropertiesFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryZirconHandlePropertiesFUCHSIA>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryZirconHandlePropertiesFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryGetZirconHandleInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryGetZirconHandleInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryGetZirconHandleInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportSemaphoreZirconHandleInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportSemaphoreZirconHandleInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportSemaphoreZirconHandleInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreGetZirconHandleInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreGetZirconHandleInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreGetZirconHandleInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryBufferCollectionFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryBufferCollectionFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryBufferCollectionFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCollectionImageCreateInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCollectionImageCreateInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCollectionImageCreateInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCollectionBufferCreateInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCollectionBufferCreateInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCollectionCreateInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCollectionCreateInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCollectionCreateInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCollectionPropertiesFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCollectionPropertiesFUCHSIA>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCollectionPropertiesFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferConstraintsInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferConstraintsInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferConstraintsInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSysmemColorSpaceFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSysmemColorSpaceFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSysmemColorSpaceFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageFormatConstraintsInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageFormatConstraintsInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageFormatConstraintsInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImageConstraintsInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImageConstraintsInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImageConstraintsInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBufferCollectionConstraintsInfoFUCHSIA& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBufferCollectionConstraintsInfoFUCHSIA>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBufferCollectionConstraintsInfoFUCHSIA));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_FUCHSIA)
#if defined(VK_USE_PLATFORM_GGP)
inline void variantWrap(const VkStreamDescriptorSurfaceCreateInfoGGP& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkStreamDescriptorSurfaceCreateInfoGGP>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkStreamDescriptorSurfaceCreateInfoGGP));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPresentFrameTokenGGP& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPresentFrameTokenGGP>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPresentFrameTokenGGP));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_GGP)
#if defined(VK_USE_PLATFORM_IOS_MVK)
inline void variantWrap(const VkIOSSurfaceCreateInfoMVK& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkIOSSurfaceCreateInfoMVK>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkIOSSurfaceCreateInfoMVK));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_IOS_MVK)
#if defined(VK_USE_PLATFORM_MACOS_MVK)
inline void variantWrap(const VkMacOSSurfaceCreateInfoMVK& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMacOSSurfaceCreateInfoMVK>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMacOSSurfaceCreateInfoMVK));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_MACOS_MVK)
#if defined(VK_USE_PLATFORM_METAL_EXT)
inline void variantWrap(const VkMetalSurfaceCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMetalSurfaceCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMetalSurfaceCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalObjectCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalObjectCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalObjectCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalObjectsInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalObjectsInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalObjectsInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalDeviceInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalDeviceInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalDeviceInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalCommandQueueInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalCommandQueueInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalCommandQueueInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalBufferInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalBufferInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalBufferInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMetalBufferInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMetalBufferInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMetalBufferInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalTextureInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalTextureInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalTextureInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMetalTextureInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMetalTextureInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMetalTextureInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalIOSurfaceInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalIOSurfaceInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalIOSurfaceInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMetalIOSurfaceInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMetalIOSurfaceInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMetalIOSurfaceInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMetalSharedEventInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMetalSharedEventInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMetalSharedEventInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMetalSharedEventInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMetalSharedEventInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMetalSharedEventInfoEXT));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_METAL_EXT)
#if defined(VK_ENABLE_BETA_EXTENSIONS)
inline void variantWrap(VkVideoSessionKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_VIDEO_SESSION_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(VkVideoSessionParametersKHR value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OBJECT_MWN;
outVariant.objectValue.type = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR;
outVariant.objectValue.value = value;
}
inline void variantWrap(const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDevicePortabilitySubsetPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyVideoPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyVideoPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyVideoPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkQueueFamilyQueryResultStatusPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkQueueFamilyQueryResultStatusPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoProfileListInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoProfileListInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoProfileListInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkPhysicalDeviceVideoFormatInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkPhysicalDeviceVideoFormatInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkPhysicalDeviceVideoFormatInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoFormatPropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoFormatPropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoFormatPropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoProfileInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoProfileInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoProfileInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoCapabilitiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoSessionMemoryRequirementsKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoSessionMemoryRequirementsKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoSessionMemoryRequirementsKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkBindVideoSessionMemoryInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkBindVideoSessionMemoryInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkBindVideoSessionMemoryInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoPictureResourceInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoPictureResourceInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoPictureResourceInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoReferenceSlotInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoReferenceSlotInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoReferenceSlotInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeCapabilitiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeUsageInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeUsageInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeUsageInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264ProfileInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264ProfileInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264ProfileInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264CapabilitiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264CapabilitiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264CapabilitiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264SessionParametersAddInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264SessionParametersAddInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264SessionParametersAddInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264SessionParametersCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264SessionParametersCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264SessionParametersCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264PictureInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264PictureInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264PictureInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264DpbSlotInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264DpbSlotInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264DpbSlotInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH264MvcInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH264MvcInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH264MvcInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265ProfileInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265ProfileInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265ProfileInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265CapabilitiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265CapabilitiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265CapabilitiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265SessionParametersAddInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265SessionParametersAddInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265SessionParametersAddInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265SessionParametersCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265SessionParametersCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265SessionParametersCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265PictureInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265PictureInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265PictureInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoDecodeH265DpbSlotInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoDecodeH265DpbSlotInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoDecodeH265DpbSlotInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoSessionCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoSessionCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoSessionCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoSessionParametersCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoSessionParametersCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoSessionParametersCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoSessionParametersUpdateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoSessionParametersUpdateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoSessionParametersUpdateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoBeginCodingInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoBeginCodingInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoBeginCodingInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEndCodingInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEndCodingInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEndCodingInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoCodingControlInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoCodingControlInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoCodingControlInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeUsageInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeUsageInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeUsageInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeRateControlInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeRateControlInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeRateControlInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeRateControlLayerInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeRateControlLayerInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeRateControlLayerInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeCapabilitiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeCapabilitiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeCapabilitiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264CapabilitiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264CapabilitiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264CapabilitiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264SessionParametersAddInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264SessionParametersAddInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264SessionParametersCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264SessionParametersCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264DpbSlotInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264DpbSlotInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264DpbSlotInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264VclFrameInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264VclFrameInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264VclFrameInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264ReferenceListsInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264ReferenceListsInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264ReferenceListsInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264EmitPictureParametersInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264EmitPictureParametersInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264EmitPictureParametersInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264ProfileInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264ProfileInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264ProfileInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264NaluSliceInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264NaluSliceInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264NaluSliceInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264RateControlInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264RateControlInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264RateControlInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH264RateControlLayerInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH264RateControlLayerInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH264RateControlLayerInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265CapabilitiesEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265CapabilitiesEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265CapabilitiesEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265SessionParametersAddInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265SessionParametersAddInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265SessionParametersCreateInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265SessionParametersCreateInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265VclFrameInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265VclFrameInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265VclFrameInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265EmitPictureParametersInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265EmitPictureParametersInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265EmitPictureParametersInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265NaluSliceSegmentInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265NaluSliceSegmentInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265NaluSliceSegmentInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265RateControlInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265RateControlInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265RateControlInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265RateControlLayerInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265RateControlLayerInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265RateControlLayerInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265ProfileInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265ProfileInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265ProfileInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265DpbSlotInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265DpbSlotInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265DpbSlotInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkVideoEncodeH265ReferenceListsInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkVideoEncodeH265ReferenceListsInfoEXT>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkVideoEncodeH265ReferenceListsInfoEXT));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_ENABLE_BETA_EXTENSIONS)
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
inline void variantWrap(const VkScreenSurfaceCreateInfoQNX& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkScreenSurfaceCreateInfoQNX>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkScreenSurfaceCreateInfoQNX));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_SCREEN_QNX)
#if defined(VK_USE_PLATFORM_VI_NN)
inline void variantWrap(const VkViSurfaceCreateInfoNN& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkViSurfaceCreateInfoNN>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkViSurfaceCreateInfoNN));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_VI_NN)
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
inline void variantWrap(const VkWaylandSurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWaylandSurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWaylandSurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_WAYLAND_KHR)
#if defined(VK_USE_PLATFORM_WIN32_KHR)
inline void variantWrap(const VkWin32SurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWin32SurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWin32SurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryWin32HandleInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryWin32HandleInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryWin32HandleInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMemoryWin32HandleInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMemoryWin32HandleInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMemoryWin32HandleInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWin32KeyedMutexAcquireReleaseInfoNV& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWin32KeyedMutexAcquireReleaseInfoNV>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportMemoryWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportMemoryWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportMemoryWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportMemoryWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportMemoryWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportMemoryWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryWin32HandlePropertiesKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryWin32HandlePropertiesKHR>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryWin32HandlePropertiesKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkMemoryGetWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkMemoryGetWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkMemoryGetWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkWin32KeyedMutexAcquireReleaseInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkWin32KeyedMutexAcquireReleaseInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportSemaphoreWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportSemaphoreWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportSemaphoreWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportSemaphoreWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportSemaphoreWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportSemaphoreWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkD3D12FenceSubmitInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkD3D12FenceSubmitInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkD3D12FenceSubmitInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSemaphoreGetWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkSemaphoreGetWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSemaphoreGetWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkImportFenceWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkImportFenceWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkImportFenceWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkExportFenceWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkExportFenceWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkExportFenceWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkFenceGetWin32HandleInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkFenceGetWin32HandleInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkFenceGetWin32HandleInfoKHR));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceFullScreenExclusiveInfoEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceFullScreenExclusiveInfoEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceFullScreenExclusiveInfoEXT));
copyIndirectData(*valueCopy);
}
inline void variantWrap(const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_OUT_STRUCTURE_MWN;
auto valueCopy = allocType<VkSurfaceCapabilitiesFullScreenExclusiveEXT>();
outVariant.outStructureValue = reinterpret_cast<VkBaseOutStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_WIN32_KHR)
#if defined(VK_USE_PLATFORM_XCB_KHR)
inline void variantWrap(const VkXcbSurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkXcbSurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkXcbSurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_XCB_KHR)
#if defined(VK_USE_PLATFORM_XLIB_KHR)
inline void variantWrap(const VkXlibSurfaceCreateInfoKHR& value, VkVariantMWN& outVariant)
{
outVariant.type = VK_VARIANT_TYPE_IN_STRUCTURE_MWN;
auto valueCopy = allocType<VkXlibSurfaceCreateInfoKHR>();
outVariant.inStructureValue = reinterpret_cast<VkBaseInStructure*>(valueCopy);
std::memcpy(valueCopy, &value, sizeof(VkXlibSurfaceCreateInfoKHR));
copyIndirectData(*valueCopy);
}
#endif // defined(VK_USE_PLATFORM_XLIB_KHR)
inline void* copyNextPtr(const void* pNext)
{
if (pNext == nullptr) {
return nullptr;
}
const VkStructureType sType = *static_cast<const VkStructureType*>(pNext);
void* pCopy = nullptr;
switch (sType)
{
case VK_STRUCTURE_TYPE_APPLICATION_INFO:
pCopy = allocType<VkApplicationInfo>();
std::memcpy(pCopy, pNext, sizeof(VkApplicationInfo));
copyIndirectData(*static_cast<VkApplicationInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:
pCopy = allocType<VkDeviceQueueCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueCreateInfo));
copyIndirectData(*static_cast<VkDeviceQueueCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:
pCopy = allocType<VkDeviceCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceCreateInfo));
copyIndirectData(*static_cast<VkDeviceCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:
pCopy = allocType<VkInstanceCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkInstanceCreateInfo));
copyIndirectData(*static_cast<VkInstanceCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:
pCopy = allocType<VkMemoryAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryAllocateInfo));
copyIndirectData(*static_cast<VkMemoryAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:
pCopy = allocType<VkMappedMemoryRange>();
std::memcpy(pCopy, pNext, sizeof(VkMappedMemoryRange));
copyIndirectData(*static_cast<VkMappedMemoryRange*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:
pCopy = allocType<VkWriteDescriptorSet>();
std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSet));
copyIndirectData(*static_cast<VkWriteDescriptorSet*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:
pCopy = allocType<VkCopyDescriptorSet>();
std::memcpy(pCopy, pNext, sizeof(VkCopyDescriptorSet));
copyIndirectData(*static_cast<VkCopyDescriptorSet*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:
pCopy = allocType<VkBufferCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCreateInfo));
copyIndirectData(*static_cast<VkBufferCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:
pCopy = allocType<VkBufferViewCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBufferViewCreateInfo));
copyIndirectData(*static_cast<VkBufferViewCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
pCopy = allocType<VkMemoryBarrier>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryBarrier));
copyIndirectData(*static_cast<VkMemoryBarrier*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
pCopy = allocType<VkBufferMemoryBarrier>();
std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryBarrier));
copyIndirectData(*static_cast<VkBufferMemoryBarrier*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
pCopy = allocType<VkImageMemoryBarrier>();
std::memcpy(pCopy, pNext, sizeof(VkImageMemoryBarrier));
copyIndirectData(*static_cast<VkImageMemoryBarrier*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:
pCopy = allocType<VkImageCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImageCreateInfo));
copyIndirectData(*static_cast<VkImageCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:
pCopy = allocType<VkImageViewCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewCreateInfo));
copyIndirectData(*static_cast<VkImageViewCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:
pCopy = allocType<VkBindSparseInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindSparseInfo));
copyIndirectData(*static_cast<VkBindSparseInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:
pCopy = allocType<VkShaderModuleCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkShaderModuleCreateInfo));
copyIndirectData(*static_cast<VkShaderModuleCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:
pCopy = allocType<VkDescriptorSetLayoutCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutCreateInfo));
copyIndirectData(*static_cast<VkDescriptorSetLayoutCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:
pCopy = allocType<VkDescriptorPoolCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorPoolCreateInfo));
copyIndirectData(*static_cast<VkDescriptorPoolCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:
pCopy = allocType<VkDescriptorSetAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetAllocateInfo));
copyIndirectData(*static_cast<VkDescriptorSetAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:
pCopy = allocType<VkPipelineShaderStageCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageCreateInfo));
copyIndirectData(*static_cast<VkPipelineShaderStageCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:
pCopy = allocType<VkComputePipelineCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkComputePipelineCreateInfo));
copyIndirectData(*static_cast<VkComputePipelineCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineVertexInputStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineVertexInputStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineVertexInputStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineInputAssemblyStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineInputAssemblyStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineInputAssemblyStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineTessellationStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineTessellationStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineTessellationStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineViewportStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineViewportStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineRasterizationStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineRasterizationStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineMultisampleStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineMultisampleStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineMultisampleStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineColorBlendStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineColorBlendStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineColorBlendStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineDynamicStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineDynamicStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineDynamicStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineDepthStencilStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineDepthStencilStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineDepthStencilStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:
pCopy = allocType<VkGraphicsPipelineCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineCreateInfo));
copyIndirectData(*static_cast<VkGraphicsPipelineCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:
pCopy = allocType<VkPipelineCacheCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCacheCreateInfo));
copyIndirectData(*static_cast<VkPipelineCacheCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:
pCopy = allocType<VkPipelineLayoutCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineLayoutCreateInfo));
copyIndirectData(*static_cast<VkPipelineLayoutCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:
pCopy = allocType<VkSamplerCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerCreateInfo));
copyIndirectData(*static_cast<VkSamplerCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:
pCopy = allocType<VkCommandPoolCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandPoolCreateInfo));
copyIndirectData(*static_cast<VkCommandPoolCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:
pCopy = allocType<VkCommandBufferAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferAllocateInfo));
copyIndirectData(*static_cast<VkCommandBufferAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:
pCopy = allocType<VkCommandBufferInheritanceInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceInfo));
copyIndirectData(*static_cast<VkCommandBufferInheritanceInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:
pCopy = allocType<VkCommandBufferBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferBeginInfo));
copyIndirectData(*static_cast<VkCommandBufferBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:
pCopy = allocType<VkRenderPassBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassBeginInfo));
copyIndirectData(*static_cast<VkRenderPassBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:
pCopy = allocType<VkRenderPassCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreateInfo));
copyIndirectData(*static_cast<VkRenderPassCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:
pCopy = allocType<VkEventCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkEventCreateInfo));
copyIndirectData(*static_cast<VkEventCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:
pCopy = allocType<VkFenceCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkFenceCreateInfo));
copyIndirectData(*static_cast<VkFenceCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:
pCopy = allocType<VkSemaphoreCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreCreateInfo));
copyIndirectData(*static_cast<VkSemaphoreCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:
pCopy = allocType<VkQueryPoolCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkQueryPoolCreateInfo));
copyIndirectData(*static_cast<VkQueryPoolCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:
pCopy = allocType<VkFramebufferCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkFramebufferCreateInfo));
copyIndirectData(*static_cast<VkFramebufferCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBMIT_INFO:
pCopy = allocType<VkSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSubmitInfo));
copyIndirectData(*static_cast<VkSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:
pCopy = allocType<VkDisplayModeCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayModeCreateInfoKHR));
copyIndirectData(*static_cast<VkDisplayModeCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkDisplaySurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplaySurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkDisplaySurfaceCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
pCopy = allocType<VkDisplayPresentInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayPresentInfoKHR));
copyIndirectData(*static_cast<VkDisplayPresentInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:
pCopy = allocType<VkSwapchainCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkSwapchainCreateInfoKHR));
copyIndirectData(*static_cast<VkSwapchainCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:
pCopy = allocType<VkPresentInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPresentInfoKHR));
copyIndirectData(*static_cast<VkPresentInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
pCopy = allocType<VkDebugReportCallbackCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugReportCallbackCreateInfoEXT));
copyIndirectData(*static_cast<VkDebugReportCallbackCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
pCopy = allocType<VkValidationFlagsEXT>();
std::memcpy(pCopy, pNext, sizeof(VkValidationFlagsEXT));
copyIndirectData(*static_cast<VkValidationFlagsEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
pCopy = allocType<VkValidationFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkValidationFeaturesEXT));
copyIndirectData(*static_cast<VkValidationFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
pCopy = allocType<VkPipelineRasterizationStateRasterizationOrderAMD>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateRasterizationOrderAMD));
copyIndirectData(*static_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:
pCopy = allocType<VkDebugMarkerObjectNameInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerObjectNameInfoEXT));
copyIndirectData(*static_cast<VkDebugMarkerObjectNameInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:
pCopy = allocType<VkDebugMarkerObjectTagInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerObjectTagInfoEXT));
copyIndirectData(*static_cast<VkDebugMarkerObjectTagInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:
pCopy = allocType<VkDebugMarkerMarkerInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerMarkerInfoEXT));
copyIndirectData(*static_cast<VkDebugMarkerMarkerInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
pCopy = allocType<VkDedicatedAllocationImageCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationImageCreateInfoNV));
copyIndirectData(*static_cast<VkDedicatedAllocationImageCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
pCopy = allocType<VkDedicatedAllocationBufferCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationBufferCreateInfoNV));
copyIndirectData(*static_cast<VkDedicatedAllocationBufferCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
pCopy = allocType<VkDedicatedAllocationMemoryAllocateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationMemoryAllocateInfoNV));
copyIndirectData(*static_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
pCopy = allocType<VkExternalMemoryImageCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryImageCreateInfoNV));
copyIndirectData(*static_cast<VkExternalMemoryImageCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
pCopy = allocType<VkExportMemoryAllocateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkExportMemoryAllocateInfoNV));
copyIndirectData(*static_cast<VkExportMemoryAllocateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
pCopy = allocType<VkDevicePrivateDataCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDevicePrivateDataCreateInfo));
copyIndirectData(*static_cast<VkDevicePrivateDataCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:
pCopy = allocType<VkPrivateDataSlotCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPrivateDataSlotCreateInfo));
copyIndirectData(*static_cast<VkPrivateDataSlotCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
pCopy = allocType<VkPhysicalDevicePrivateDataFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrivateDataFeatures));
copyIndirectData(*static_cast<VkPhysicalDevicePrivateDataFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceMultiDrawPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:
pCopy = allocType<VkGraphicsShaderGroupCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkGraphicsShaderGroupCreateInfoNV));
copyIndirectData(*static_cast<VkGraphicsShaderGroupCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
pCopy = allocType<VkGraphicsPipelineShaderGroupsCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV));
copyIndirectData(*static_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:
pCopy = allocType<VkIndirectCommandsLayoutTokenNV>();
std::memcpy(pCopy, pNext, sizeof(VkIndirectCommandsLayoutTokenNV));
copyIndirectData(*static_cast<VkIndirectCommandsLayoutTokenNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:
pCopy = allocType<VkIndirectCommandsLayoutCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkIndirectCommandsLayoutCreateInfoNV));
copyIndirectData(*static_cast<VkIndirectCommandsLayoutCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:
pCopy = allocType<VkGeneratedCommandsInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkGeneratedCommandsInfoNV));
copyIndirectData(*static_cast<VkGeneratedCommandsInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:
pCopy = allocType<VkGeneratedCommandsMemoryRequirementsInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkGeneratedCommandsMemoryRequirementsInfoNV));
copyIndirectData(*static_cast<VkGeneratedCommandsMemoryRequirementsInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
pCopy = allocType<VkPhysicalDeviceFeatures2>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFeatures2));
copyIndirectData(*static_cast<VkPhysicalDeviceFeatures2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:
pCopy = allocType<VkPhysicalDeviceProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProperties2));
copyIndirectData(*static_cast<VkPhysicalDeviceProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:
pCopy = allocType<VkFormatProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkFormatProperties2));
copyIndirectData(*static_cast<VkFormatProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:
pCopy = allocType<VkImageFormatProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkImageFormatProperties2));
copyIndirectData(*static_cast<VkImageFormatProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:
pCopy = allocType<VkPhysicalDeviceImageFormatInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageFormatInfo2));
copyIndirectData(*static_cast<VkPhysicalDeviceImageFormatInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:
pCopy = allocType<VkQueueFamilyProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyProperties2));
copyIndirectData(*static_cast<VkQueueFamilyProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:
pCopy = allocType<VkPhysicalDeviceMemoryProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryProperties2));
copyIndirectData(*static_cast<VkPhysicalDeviceMemoryProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:
pCopy = allocType<VkSparseImageFormatProperties2>();
std::memcpy(pCopy, pNext, sizeof(VkSparseImageFormatProperties2));
copyIndirectData(*static_cast<VkSparseImageFormatProperties2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:
pCopy = allocType<VkPhysicalDeviceSparseImageFormatInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSparseImageFormatInfo2));
copyIndirectData(*static_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDevicePushDescriptorPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceDriverProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDriverProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceDriverProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
pCopy = allocType<VkPresentRegionsKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPresentRegionsKHR));
copyIndirectData(*static_cast<VkPresentRegionsKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
pCopy = allocType<VkPhysicalDeviceVariablePointersFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVariablePointersFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceVariablePointersFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
pCopy = allocType<VkPhysicalDeviceExternalImageFormatInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalImageFormatInfo));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalImageFormatInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
pCopy = allocType<VkExternalImageFormatProperties>();
std::memcpy(pCopy, pNext, sizeof(VkExternalImageFormatProperties));
copyIndirectData(*static_cast<VkExternalImageFormatProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:
pCopy = allocType<VkPhysicalDeviceExternalBufferInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalBufferInfo));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalBufferInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:
pCopy = allocType<VkExternalBufferProperties>();
std::memcpy(pCopy, pNext, sizeof(VkExternalBufferProperties));
copyIndirectData(*static_cast<VkExternalBufferProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceIDProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceIDProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceIDProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
pCopy = allocType<VkExternalMemoryImageCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryImageCreateInfo));
copyIndirectData(*static_cast<VkExternalMemoryImageCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
pCopy = allocType<VkExternalMemoryBufferCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryBufferCreateInfo));
copyIndirectData(*static_cast<VkExternalMemoryBufferCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
pCopy = allocType<VkExportMemoryAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkExportMemoryAllocateInfo));
copyIndirectData(*static_cast<VkExportMemoryAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
pCopy = allocType<VkImportMemoryFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryFdInfoKHR));
copyIndirectData(*static_cast<VkImportMemoryFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:
pCopy = allocType<VkMemoryFdPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryFdPropertiesKHR));
copyIndirectData(*static_cast<VkMemoryFdPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:
pCopy = allocType<VkMemoryGetFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryGetFdInfoKHR));
copyIndirectData(*static_cast<VkMemoryGetFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:
pCopy = allocType<VkPhysicalDeviceExternalSemaphoreInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalSemaphoreInfo));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:
pCopy = allocType<VkExternalSemaphoreProperties>();
std::memcpy(pCopy, pNext, sizeof(VkExternalSemaphoreProperties));
copyIndirectData(*static_cast<VkExternalSemaphoreProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
pCopy = allocType<VkExportSemaphoreCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkExportSemaphoreCreateInfo));
copyIndirectData(*static_cast<VkExportSemaphoreCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:
pCopy = allocType<VkImportSemaphoreFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreFdInfoKHR));
copyIndirectData(*static_cast<VkImportSemaphoreFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:
pCopy = allocType<VkSemaphoreGetFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetFdInfoKHR));
copyIndirectData(*static_cast<VkSemaphoreGetFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:
pCopy = allocType<VkPhysicalDeviceExternalFenceInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalFenceInfo));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalFenceInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:
pCopy = allocType<VkExternalFenceProperties>();
std::memcpy(pCopy, pNext, sizeof(VkExternalFenceProperties));
copyIndirectData(*static_cast<VkExternalFenceProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
pCopy = allocType<VkExportFenceCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkExportFenceCreateInfo));
copyIndirectData(*static_cast<VkExportFenceCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:
pCopy = allocType<VkImportFenceFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportFenceFdInfoKHR));
copyIndirectData(*static_cast<VkImportFenceFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:
pCopy = allocType<VkFenceGetFdInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkFenceGetFdInfoKHR));
copyIndirectData(*static_cast<VkFenceGetFdInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
pCopy = allocType<VkPhysicalDeviceMultiviewFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceMultiviewFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceMultiviewProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceMultiviewProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
pCopy = allocType<VkRenderPassMultiviewCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassMultiviewCreateInfo));
copyIndirectData(*static_cast<VkRenderPassMultiviewCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:
pCopy = allocType<VkSurfaceCapabilities2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilities2EXT));
copyIndirectData(*static_cast<VkSurfaceCapabilities2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:
pCopy = allocType<VkDisplayPowerInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayPowerInfoEXT));
copyIndirectData(*static_cast<VkDisplayPowerInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:
pCopy = allocType<VkDeviceEventInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceEventInfoEXT));
copyIndirectData(*static_cast<VkDeviceEventInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:
pCopy = allocType<VkDisplayEventInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayEventInfoEXT));
copyIndirectData(*static_cast<VkDisplayEventInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
pCopy = allocType<VkSwapchainCounterCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSwapchainCounterCreateInfoEXT));
copyIndirectData(*static_cast<VkSwapchainCounterCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceGroupProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGroupProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceGroupProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
pCopy = allocType<VkMemoryAllocateFlagsInfo>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryAllocateFlagsInfo));
copyIndirectData(*static_cast<VkMemoryAllocateFlagsInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:
pCopy = allocType<VkBindBufferMemoryInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindBufferMemoryInfo));
copyIndirectData(*static_cast<VkBindBufferMemoryInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
pCopy = allocType<VkBindBufferMemoryDeviceGroupInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindBufferMemoryDeviceGroupInfo));
copyIndirectData(*static_cast<VkBindBufferMemoryDeviceGroupInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:
pCopy = allocType<VkBindImageMemoryInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindImageMemoryInfo));
copyIndirectData(*static_cast<VkBindImageMemoryInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
pCopy = allocType<VkBindImageMemoryDeviceGroupInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindImageMemoryDeviceGroupInfo));
copyIndirectData(*static_cast<VkBindImageMemoryDeviceGroupInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
pCopy = allocType<VkDeviceGroupRenderPassBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupRenderPassBeginInfo));
copyIndirectData(*static_cast<VkDeviceGroupRenderPassBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
pCopy = allocType<VkDeviceGroupCommandBufferBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupCommandBufferBeginInfo));
copyIndirectData(*static_cast<VkDeviceGroupCommandBufferBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
pCopy = allocType<VkDeviceGroupSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupSubmitInfo));
copyIndirectData(*static_cast<VkDeviceGroupSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
pCopy = allocType<VkDeviceGroupBindSparseInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupBindSparseInfo));
copyIndirectData(*static_cast<VkDeviceGroupBindSparseInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:
pCopy = allocType<VkDeviceGroupPresentCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupPresentCapabilitiesKHR));
copyIndirectData(*static_cast<VkDeviceGroupPresentCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
pCopy = allocType<VkImageSwapchainCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImageSwapchainCreateInfoKHR));
copyIndirectData(*static_cast<VkImageSwapchainCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
pCopy = allocType<VkBindImageMemorySwapchainInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkBindImageMemorySwapchainInfoKHR));
copyIndirectData(*static_cast<VkBindImageMemorySwapchainInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:
pCopy = allocType<VkAcquireNextImageInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAcquireNextImageInfoKHR));
copyIndirectData(*static_cast<VkAcquireNextImageInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
pCopy = allocType<VkDeviceGroupPresentInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupPresentInfoKHR));
copyIndirectData(*static_cast<VkDeviceGroupPresentInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
pCopy = allocType<VkDeviceGroupDeviceCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupDeviceCreateInfo));
copyIndirectData(*static_cast<VkDeviceGroupDeviceCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
pCopy = allocType<VkDeviceGroupSwapchainCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupSwapchainCreateInfoKHR));
copyIndirectData(*static_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:
pCopy = allocType<VkDescriptorUpdateTemplateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorUpdateTemplateCreateInfo));
copyIndirectData(*static_cast<VkDescriptorUpdateTemplateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
pCopy = allocType<VkPhysicalDevicePresentIdFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentIdFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
pCopy = allocType<VkPresentIdKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPresentIdKHR));
copyIndirectData(*static_cast<VkPresentIdKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
pCopy = allocType<VkPhysicalDevicePresentWaitFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentWaitFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:
pCopy = allocType<VkHdrMetadataEXT>();
std::memcpy(pCopy, pNext, sizeof(VkHdrMetadataEXT));
copyIndirectData(*static_cast<VkHdrMetadataEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
pCopy = allocType<VkDisplayNativeHdrSurfaceCapabilitiesAMD>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD));
copyIndirectData(*static_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
pCopy = allocType<VkSwapchainDisplayNativeHdrCreateInfoAMD>();
std::memcpy(pCopy, pNext, sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD));
copyIndirectData(*static_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
pCopy = allocType<VkPresentTimesInfoGOOGLE>();
std::memcpy(pCopy, pNext, sizeof(VkPresentTimesInfoGOOGLE));
copyIndirectData(*static_cast<VkPresentTimesInfoGOOGLE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineViewportWScalingStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportWScalingStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineViewportSwizzleStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportSwizzleStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceDiscardRectanglePropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineDiscardRectangleStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
pCopy = allocType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX));
copyIndirectData(*static_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
pCopy = allocType<VkRenderPassInputAttachmentAspectCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassInputAttachmentAspectCreateInfo));
copyIndirectData(*static_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:
pCopy = allocType<VkPhysicalDeviceSurfaceInfo2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSurfaceInfo2KHR));
copyIndirectData(*static_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:
pCopy = allocType<VkSurfaceCapabilities2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilities2KHR));
copyIndirectData(*static_cast<VkSurfaceCapabilities2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:
pCopy = allocType<VkSurfaceFormat2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceFormat2KHR));
copyIndirectData(*static_cast<VkSurfaceFormat2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:
pCopy = allocType<VkDisplayProperties2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayProperties2KHR));
copyIndirectData(*static_cast<VkDisplayProperties2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:
pCopy = allocType<VkDisplayPlaneProperties2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneProperties2KHR));
copyIndirectData(*static_cast<VkDisplayPlaneProperties2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:
pCopy = allocType<VkDisplayModeProperties2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayModeProperties2KHR));
copyIndirectData(*static_cast<VkDisplayModeProperties2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:
pCopy = allocType<VkDisplayPlaneInfo2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneInfo2KHR));
copyIndirectData(*static_cast<VkDisplayPlaneInfo2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:
pCopy = allocType<VkDisplayPlaneCapabilities2KHR>();
std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneCapabilities2KHR));
copyIndirectData(*static_cast<VkDisplayPlaneCapabilities2KHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
pCopy = allocType<VkSharedPresentSurfaceCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkSharedPresentSurfaceCapabilitiesKHR));
copyIndirectData(*static_cast<VkSharedPresentSurfaceCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
pCopy = allocType<VkPhysicalDevice16BitStorageFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice16BitStorageFeatures));
copyIndirectData(*static_cast<VkPhysicalDevice16BitStorageFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceSubgroupProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceSubgroupProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:
pCopy = allocType<VkBufferMemoryRequirementsInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryRequirementsInfo2));
copyIndirectData(*static_cast<VkBufferMemoryRequirementsInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:
pCopy = allocType<VkDeviceBufferMemoryRequirements>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceBufferMemoryRequirements));
copyIndirectData(*static_cast<VkDeviceBufferMemoryRequirements*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:
pCopy = allocType<VkImageMemoryRequirementsInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkImageMemoryRequirementsInfo2));
copyIndirectData(*static_cast<VkImageMemoryRequirementsInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:
pCopy = allocType<VkImageSparseMemoryRequirementsInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkImageSparseMemoryRequirementsInfo2));
copyIndirectData(*static_cast<VkImageSparseMemoryRequirementsInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:
pCopy = allocType<VkDeviceImageMemoryRequirements>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceImageMemoryRequirements));
copyIndirectData(*static_cast<VkDeviceImageMemoryRequirements*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:
pCopy = allocType<VkMemoryRequirements2>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryRequirements2));
copyIndirectData(*static_cast<VkMemoryRequirements2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:
pCopy = allocType<VkSparseImageMemoryRequirements2>();
std::memcpy(pCopy, pNext, sizeof(VkSparseImageMemoryRequirements2));
copyIndirectData(*static_cast<VkSparseImageMemoryRequirements2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
pCopy = allocType<VkPhysicalDevicePointClippingProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePointClippingProperties));
copyIndirectData(*static_cast<VkPhysicalDevicePointClippingProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
pCopy = allocType<VkMemoryDedicatedRequirements>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryDedicatedRequirements));
copyIndirectData(*static_cast<VkMemoryDedicatedRequirements*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
pCopy = allocType<VkMemoryDedicatedAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryDedicatedAllocateInfo));
copyIndirectData(*static_cast<VkMemoryDedicatedAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
pCopy = allocType<VkImageViewUsageCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewUsageCreateInfo));
copyIndirectData(*static_cast<VkImageViewUsageCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
pCopy = allocType<VkPipelineTessellationDomainOriginStateCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineTessellationDomainOriginStateCreateInfo));
copyIndirectData(*static_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
pCopy = allocType<VkSamplerYcbcrConversionInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionInfo));
copyIndirectData(*static_cast<VkSamplerYcbcrConversionInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:
pCopy = allocType<VkSamplerYcbcrConversionCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionCreateInfo));
copyIndirectData(*static_cast<VkSamplerYcbcrConversionCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
pCopy = allocType<VkBindImagePlaneMemoryInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBindImagePlaneMemoryInfo));
copyIndirectData(*static_cast<VkBindImagePlaneMemoryInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
pCopy = allocType<VkImagePlaneMemoryRequirementsInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImagePlaneMemoryRequirementsInfo));
copyIndirectData(*static_cast<VkImagePlaneMemoryRequirementsInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
pCopy = allocType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
pCopy = allocType<VkSamplerYcbcrConversionImageFormatProperties>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionImageFormatProperties));
copyIndirectData(*static_cast<VkSamplerYcbcrConversionImageFormatProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
pCopy = allocType<VkTextureLODGatherFormatPropertiesAMD>();
std::memcpy(pCopy, pNext, sizeof(VkTextureLODGatherFormatPropertiesAMD));
copyIndirectData(*static_cast<VkTextureLODGatherFormatPropertiesAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:
pCopy = allocType<VkConditionalRenderingBeginInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkConditionalRenderingBeginInfoEXT));
copyIndirectData(*static_cast<VkConditionalRenderingBeginInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
pCopy = allocType<VkProtectedSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkProtectedSubmitInfo));
copyIndirectData(*static_cast<VkProtectedSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
pCopy = allocType<VkPhysicalDeviceProtectedMemoryFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceProtectedMemoryProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProtectedMemoryProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceProtectedMemoryProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:
pCopy = allocType<VkDeviceQueueInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueInfo2));
copyIndirectData(*static_cast<VkDeviceQueueInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineCoverageToColorStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageToColorStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceSamplerFilterMinmaxProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
pCopy = allocType<VkSampleLocationsInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSampleLocationsInfoEXT));
copyIndirectData(*static_cast<VkSampleLocationsInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
pCopy = allocType<VkRenderPassSampleLocationsBeginInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassSampleLocationsBeginInfoEXT));
copyIndirectData(*static_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineSampleLocationsStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineSampleLocationsStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceSampleLocationsPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:
pCopy = allocType<VkMultisamplePropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkMultisamplePropertiesEXT));
copyIndirectData(*static_cast<VkMultisamplePropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
pCopy = allocType<VkSamplerReductionModeCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerReductionModeCreateInfo));
copyIndirectData(*static_cast<VkSamplerReductionModeCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceMultiDrawFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineColorBlendAdvancedStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
pCopy = allocType<VkPhysicalDeviceInlineUniformBlockFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceInlineUniformBlockFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceInlineUniformBlockProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInlineUniformBlockProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceInlineUniformBlockProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
pCopy = allocType<VkWriteDescriptorSetInlineUniformBlock>();
std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetInlineUniformBlock));
copyIndirectData(*static_cast<VkWriteDescriptorSetInlineUniformBlock*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:
pCopy = allocType<VkDescriptorPoolInlineUniformBlockCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo));
copyIndirectData(*static_cast<VkDescriptorPoolInlineUniformBlockCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineCoverageModulationStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageModulationStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
pCopy = allocType<VkImageFormatListCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImageFormatListCreateInfo));
copyIndirectData(*static_cast<VkImageFormatListCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:
pCopy = allocType<VkValidationCacheCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkValidationCacheCreateInfoEXT));
copyIndirectData(*static_cast<VkValidationCacheCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
pCopy = allocType<VkShaderModuleValidationCacheCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkShaderModuleValidationCacheCreateInfoEXT));
copyIndirectData(*static_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceMaintenance3Properties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance3Properties));
copyIndirectData(*static_cast<VkPhysicalDeviceMaintenance3Properties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
pCopy = allocType<VkPhysicalDeviceMaintenance4Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance4Features));
copyIndirectData(*static_cast<VkPhysicalDeviceMaintenance4Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceMaintenance4Properties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance4Properties));
copyIndirectData(*static_cast<VkPhysicalDeviceMaintenance4Properties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:
pCopy = allocType<VkDescriptorSetLayoutSupport>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutSupport));
copyIndirectData(*static_cast<VkDescriptorSetLayoutSupport*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderDrawParametersFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderFloat16Int8Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceFloatControlsProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFloatControlsProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceFloatControlsProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
pCopy = allocType<VkPhysicalDeviceHostQueryResetFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceHostQueryResetFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:
pCopy = allocType<VkDeviceQueueGlobalPriorityCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR));
copyIndirectData(*static_cast<VkDeviceQueueGlobalPriorityCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:
pCopy = allocType<VkQueueFamilyGlobalPriorityPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR));
copyIndirectData(*static_cast<VkQueueFamilyGlobalPriorityPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:
pCopy = allocType<VkDebugUtilsObjectNameInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsObjectNameInfoEXT));
copyIndirectData(*static_cast<VkDebugUtilsObjectNameInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:
pCopy = allocType<VkDebugUtilsObjectTagInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsObjectTagInfoEXT));
copyIndirectData(*static_cast<VkDebugUtilsObjectTagInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:
pCopy = allocType<VkDebugUtilsLabelEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsLabelEXT));
copyIndirectData(*static_cast<VkDebugUtilsLabelEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
pCopy = allocType<VkDebugUtilsMessengerCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsMessengerCreateInfoEXT));
copyIndirectData(*static_cast<VkDebugUtilsMessengerCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:
pCopy = allocType<VkDebugUtilsMessengerCallbackDataEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsMessengerCallbackDataEXT));
copyIndirectData(*static_cast<VkDebugUtilsMessengerCallbackDataEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
pCopy = allocType<VkDeviceDeviceMemoryReportCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT));
copyIndirectData(*static_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:
pCopy = allocType<VkDeviceMemoryReportCallbackDataEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryReportCallbackDataEXT));
copyIndirectData(*static_cast<VkDeviceMemoryReportCallbackDataEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
pCopy = allocType<VkImportMemoryHostPointerInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryHostPointerInfoEXT));
copyIndirectData(*static_cast<VkImportMemoryHostPointerInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:
pCopy = allocType<VkMemoryHostPointerPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryHostPointerPropertiesEXT));
copyIndirectData(*static_cast<VkMemoryHostPointerPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:
pCopy = allocType<VkCalibratedTimestampInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkCalibratedTimestampInfoEXT));
copyIndirectData(*static_cast<VkCalibratedTimestampInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
pCopy = allocType<VkPhysicalDeviceShaderCorePropertiesAMD>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderCorePropertiesAMD));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
pCopy = allocType<VkPhysicalDeviceShaderCoreProperties2AMD>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderCoreProperties2AMD));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRasterizationConservativeStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
pCopy = allocType<VkPhysicalDeviceDescriptorIndexingFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceDescriptorIndexingProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorIndexingProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
pCopy = allocType<VkDescriptorSetLayoutBindingFlagsCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo));
copyIndirectData(*static_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
pCopy = allocType<VkDescriptorSetVariableDescriptorCountAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo));
copyIndirectData(*static_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
pCopy = allocType<VkDescriptorSetVariableDescriptorCountLayoutSupport>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport));
copyIndirectData(*static_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:
pCopy = allocType<VkAttachmentDescription2>();
std::memcpy(pCopy, pNext, sizeof(VkAttachmentDescription2));
copyIndirectData(*static_cast<VkAttachmentDescription2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:
pCopy = allocType<VkAttachmentReference2>();
std::memcpy(pCopy, pNext, sizeof(VkAttachmentReference2));
copyIndirectData(*static_cast<VkAttachmentReference2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:
pCopy = allocType<VkSubpassDescription2>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassDescription2));
copyIndirectData(*static_cast<VkSubpassDescription2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:
pCopy = allocType<VkSubpassDependency2>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassDependency2));
copyIndirectData(*static_cast<VkSubpassDependency2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:
pCopy = allocType<VkRenderPassCreateInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreateInfo2));
copyIndirectData(*static_cast<VkRenderPassCreateInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:
pCopy = allocType<VkSubpassBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassBeginInfo));
copyIndirectData(*static_cast<VkSubpassBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:
pCopy = allocType<VkSubpassEndInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassEndInfo));
copyIndirectData(*static_cast<VkSubpassEndInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
pCopy = allocType<VkPhysicalDeviceTimelineSemaphoreFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceTimelineSemaphoreProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTimelineSemaphoreProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
pCopy = allocType<VkSemaphoreTypeCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreTypeCreateInfo));
copyIndirectData(*static_cast<VkSemaphoreTypeCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
pCopy = allocType<VkTimelineSemaphoreSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkTimelineSemaphoreSubmitInfo));
copyIndirectData(*static_cast<VkTimelineSemaphoreSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:
pCopy = allocType<VkSemaphoreWaitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreWaitInfo));
copyIndirectData(*static_cast<VkSemaphoreWaitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:
pCopy = allocType<VkSemaphoreSignalInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreSignalInfo));
copyIndirectData(*static_cast<VkSemaphoreSignalInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineVertexInputDivisorStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDevicePCIBusInfoPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
pCopy = allocType<VkCommandBufferInheritanceConditionalRenderingInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT));
copyIndirectData(*static_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
pCopy = allocType<VkPhysicalDevice8BitStorageFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice8BitStorageFeatures));
copyIndirectData(*static_cast<VkPhysicalDevice8BitStorageFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
pCopy = allocType<VkPhysicalDeviceVulkanMemoryModelFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderAtomicInt64Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
pCopy = allocType<VkQueueFamilyCheckpointPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyCheckpointPropertiesNV));
copyIndirectData(*static_cast<VkQueueFamilyCheckpointPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:
pCopy = allocType<VkCheckpointDataNV>();
std::memcpy(pCopy, pNext, sizeof(VkCheckpointDataNV));
copyIndirectData(*static_cast<VkCheckpointDataNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceDepthStencilResolveProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthStencilResolveProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
pCopy = allocType<VkSubpassDescriptionDepthStencilResolve>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassDescriptionDepthStencilResolve));
copyIndirectData(*static_cast<VkSubpassDescriptionDepthStencilResolve*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
pCopy = allocType<VkImageViewASTCDecodeModeEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewASTCDecodeModeEXT));
copyIndirectData(*static_cast<VkImageViewASTCDecodeModeEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceASTCDecodeFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceTransformFeedbackPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRasterizationStateStreamCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineRepresentativeFragmentTestStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineViewportExclusiveScissorStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineViewportShadingRateImageStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceShadingRateImageFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceShadingRateImagePropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
pCopy = allocType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI));
copyIndirectData(*static_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceMeshShaderFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMeshShaderFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceMeshShaderPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMeshShaderPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:
pCopy = allocType<VkRayTracingShaderGroupCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkRayTracingShaderGroupCreateInfoNV));
copyIndirectData(*static_cast<VkRayTracingShaderGroupCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:
pCopy = allocType<VkRayTracingShaderGroupCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkRayTracingShaderGroupCreateInfoKHR));
copyIndirectData(*static_cast<VkRayTracingShaderGroupCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:
pCopy = allocType<VkRayTracingPipelineCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineCreateInfoNV));
copyIndirectData(*static_cast<VkRayTracingPipelineCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:
pCopy = allocType<VkRayTracingPipelineCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineCreateInfoKHR));
copyIndirectData(*static_cast<VkRayTracingPipelineCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:
pCopy = allocType<VkGeometryTrianglesNV>();
std::memcpy(pCopy, pNext, sizeof(VkGeometryTrianglesNV));
copyIndirectData(*static_cast<VkGeometryTrianglesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:
pCopy = allocType<VkGeometryAABBNV>();
std::memcpy(pCopy, pNext, sizeof(VkGeometryAABBNV));
copyIndirectData(*static_cast<VkGeometryAABBNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GEOMETRY_NV:
pCopy = allocType<VkGeometryNV>();
std::memcpy(pCopy, pNext, sizeof(VkGeometryNV));
copyIndirectData(*static_cast<VkGeometryNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:
pCopy = allocType<VkAccelerationStructureInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureInfoNV));
copyIndirectData(*static_cast<VkAccelerationStructureInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:
pCopy = allocType<VkAccelerationStructureCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureCreateInfoNV));
copyIndirectData(*static_cast<VkAccelerationStructureCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:
pCopy = allocType<VkBindAccelerationStructureMemoryInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkBindAccelerationStructureMemoryInfoNV));
copyIndirectData(*static_cast<VkBindAccelerationStructureMemoryInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
pCopy = allocType<VkWriteDescriptorSetAccelerationStructureKHR>();
std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetAccelerationStructureKHR));
copyIndirectData(*static_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
pCopy = allocType<VkWriteDescriptorSetAccelerationStructureNV>();
std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetAccelerationStructureNV));
copyIndirectData(*static_cast<VkWriteDescriptorSetAccelerationStructureNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:
pCopy = allocType<VkAccelerationStructureMemoryRequirementsInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureMemoryRequirementsInfoNV));
copyIndirectData(*static_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceRayQueryFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayQueryFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDeviceAccelerationStructurePropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceRayTracingPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
pCopy = allocType<VkDrmFormatModifierPropertiesListEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDrmFormatModifierPropertiesListEXT));
copyIndirectData(*static_cast<VkDrmFormatModifierPropertiesListEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
pCopy = allocType<VkPhysicalDeviceImageDrmFormatModifierInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
pCopy = allocType<VkImageDrmFormatModifierListCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierListCreateInfoEXT));
copyIndirectData(*static_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
pCopy = allocType<VkImageDrmFormatModifierExplicitCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT));
copyIndirectData(*static_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:
pCopy = allocType<VkImageDrmFormatModifierPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierPropertiesEXT));
copyIndirectData(*static_cast<VkImageDrmFormatModifierPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
pCopy = allocType<VkImageStencilUsageCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkImageStencilUsageCreateInfo));
copyIndirectData(*static_cast<VkImageStencilUsageCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
pCopy = allocType<VkDeviceMemoryOverallocationCreateInfoAMD>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryOverallocationCreateInfoAMD));
copyIndirectData(*static_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:
pCopy = allocType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:
pCopy = allocType<VkRenderPassFragmentDensityMapCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT));
copyIndirectData(*static_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:
pCopy = allocType<VkSubpassFragmentDensityMapOffsetEndInfoQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM));
copyIndirectData(*static_cast<VkSubpassFragmentDensityMapOffsetEndInfoQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
pCopy = allocType<VkPhysicalDeviceScalarBlockLayoutFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
pCopy = allocType<VkSurfaceProtectedCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceProtectedCapabilitiesKHR));
copyIndirectData(*static_cast<VkSurfaceProtectedCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
pCopy = allocType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRasterizationDepthClipStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceMemoryBudgetPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
pCopy = allocType<VkMemoryPriorityAllocateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryPriorityAllocateInfoEXT));
copyIndirectData(*static_cast<VkMemoryPriorityAllocateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
pCopy = allocType<VkPhysicalDeviceBufferDeviceAddressFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:
pCopy = allocType<VkBufferDeviceAddressInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBufferDeviceAddressInfo));
copyIndirectData(*static_cast<VkBufferDeviceAddressInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
pCopy = allocType<VkBufferOpaqueCaptureAddressCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkBufferOpaqueCaptureAddressCreateInfo));
copyIndirectData(*static_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
pCopy = allocType<VkBufferDeviceAddressCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkBufferDeviceAddressCreateInfoEXT));
copyIndirectData(*static_cast<VkBufferDeviceAddressCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
pCopy = allocType<VkPhysicalDeviceImageViewImageFormatInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
pCopy = allocType<VkFilterCubicImageViewImageFormatPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT));
copyIndirectData(*static_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
pCopy = allocType<VkPhysicalDeviceImagelessFramebufferFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
pCopy = allocType<VkFramebufferAttachmentsCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkFramebufferAttachmentsCreateInfo));
copyIndirectData(*static_cast<VkFramebufferAttachmentsCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:
pCopy = allocType<VkFramebufferAttachmentImageInfo>();
std::memcpy(pCopy, pNext, sizeof(VkFramebufferAttachmentImageInfo));
copyIndirectData(*static_cast<VkFramebufferAttachmentImageInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
pCopy = allocType<VkRenderPassAttachmentBeginInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassAttachmentBeginInfo));
copyIndirectData(*static_cast<VkRenderPassAttachmentBeginInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
pCopy = allocType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceCooperativeMatrixPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:
pCopy = allocType<VkCooperativeMatrixPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkCooperativeMatrixPropertiesNV));
copyIndirectData(*static_cast<VkCooperativeMatrixPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:
pCopy = allocType<VkImageViewHandleInfoNVX>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewHandleInfoNVX));
copyIndirectData(*static_cast<VkImageViewHandleInfoNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:
pCopy = allocType<VkImageViewAddressPropertiesNVX>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewAddressPropertiesNVX));
copyIndirectData(*static_cast<VkImageViewAddressPropertiesNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
pCopy = allocType<VkPipelineCreationFeedbackCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCreationFeedbackCreateInfo));
copyIndirectData(*static_cast<VkPipelineCreationFeedbackCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
pCopy = allocType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDevicePerformanceQueryPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:
pCopy = allocType<VkPerformanceCounterKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceCounterKHR));
copyIndirectData(*static_cast<VkPerformanceCounterKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:
pCopy = allocType<VkPerformanceCounterDescriptionKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceCounterDescriptionKHR));
copyIndirectData(*static_cast<VkPerformanceCounterDescriptionKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
pCopy = allocType<VkQueryPoolPerformanceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkQueryPoolPerformanceCreateInfoKHR));
copyIndirectData(*static_cast<VkQueryPoolPerformanceCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:
pCopy = allocType<VkAcquireProfilingLockInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAcquireProfilingLockInfoKHR));
copyIndirectData(*static_cast<VkAcquireProfilingLockInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
pCopy = allocType<VkPerformanceQuerySubmitInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceQuerySubmitInfoKHR));
copyIndirectData(*static_cast<VkPerformanceQuerySubmitInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:
pCopy = allocType<VkHeadlessSurfaceCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkHeadlessSurfaceCreateInfoEXT));
copyIndirectData(*static_cast<VkHeadlessSurfaceCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineCoverageReductionStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageReductionStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:
pCopy = allocType<VkFramebufferMixedSamplesCombinationNV>();
std::memcpy(pCopy, pNext, sizeof(VkFramebufferMixedSamplesCombinationNV));
copyIndirectData(*static_cast<VkFramebufferMixedSamplesCombinationNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
pCopy = allocType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:
pCopy = allocType<VkInitializePerformanceApiInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkInitializePerformanceApiInfoINTEL));
copyIndirectData(*static_cast<VkInitializePerformanceApiInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
pCopy = allocType<VkQueryPoolPerformanceQueryCreateInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL));
copyIndirectData(*static_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:
pCopy = allocType<VkPerformanceMarkerInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceMarkerInfoINTEL));
copyIndirectData(*static_cast<VkPerformanceMarkerInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:
pCopy = allocType<VkPerformanceStreamMarkerInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceStreamMarkerInfoINTEL));
copyIndirectData(*static_cast<VkPerformanceStreamMarkerInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:
pCopy = allocType<VkPerformanceOverrideInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceOverrideInfoINTEL));
copyIndirectData(*static_cast<VkPerformanceOverrideInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:
pCopy = allocType<VkPerformanceConfigurationAcquireInfoINTEL>();
std::memcpy(pCopy, pNext, sizeof(VkPerformanceConfigurationAcquireInfoINTEL));
copyIndirectData(*static_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceShaderClockFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
pCopy = allocType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
pCopy = allocType<VkAttachmentReferenceStencilLayout>();
std::memcpy(pCopy, pNext, sizeof(VkAttachmentReferenceStencilLayout));
copyIndirectData(*static_cast<VkAttachmentReferenceStencilLayout*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
pCopy = allocType<VkAttachmentDescriptionStencilLayout>();
std::memcpy(pCopy, pNext, sizeof(VkAttachmentDescriptionStencilLayout));
copyIndirectData(*static_cast<VkAttachmentDescriptionStencilLayout*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
pCopy = allocType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:
pCopy = allocType<VkPipelineInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineInfoKHR));
copyIndirectData(*static_cast<VkPipelineInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:
pCopy = allocType<VkPipelineExecutablePropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutablePropertiesKHR));
copyIndirectData(*static_cast<VkPipelineExecutablePropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:
pCopy = allocType<VkPipelineExecutableInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableInfoKHR));
copyIndirectData(*static_cast<VkPipelineExecutableInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:
pCopy = allocType<VkPipelineExecutableStatisticKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableStatisticKHR));
copyIndirectData(*static_cast<VkPipelineExecutableStatisticKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:
pCopy = allocType<VkPipelineExecutableInternalRepresentationKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableInternalRepresentationKHR));
copyIndirectData(*static_cast<VkPipelineExecutableInternalRepresentationKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceTexelBufferAlignmentProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceTexelBufferAlignmentProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
pCopy = allocType<VkPhysicalDeviceSubgroupSizeControlFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceSubgroupSizeControlFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceSubgroupSizeControlProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupSizeControlProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceSubgroupSizeControlProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:
pCopy = allocType<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo));
copyIndirectData(*static_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
pCopy = allocType<VkSubpassShadingPipelineCreateInfoHUAWEI>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI));
copyIndirectData(*static_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
pCopy = allocType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI));
copyIndirectData(*static_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
pCopy = allocType<VkMemoryOpaqueCaptureAddressAllocateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo));
copyIndirectData(*static_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:
pCopy = allocType<VkDeviceMemoryOpaqueCaptureAddressInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryOpaqueCaptureAddressInfo));
copyIndirectData(*static_cast<VkDeviceMemoryOpaqueCaptureAddressInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceLineRasterizationPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRasterizationLineStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationLineStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
pCopy = allocType<VkPhysicalDevicePipelineCreationCacheControlFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
copyIndirectData(*static_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
pCopy = allocType<VkPhysicalDeviceVulkan11Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan11Features));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan11Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceVulkan11Properties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan11Properties));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan11Properties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
pCopy = allocType<VkPhysicalDeviceVulkan12Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan12Features));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan12Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceVulkan12Properties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan12Properties));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan12Properties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
pCopy = allocType<VkPhysicalDeviceVulkan13Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan13Features));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan13Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceVulkan13Properties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan13Properties));
copyIndirectData(*static_cast<VkPhysicalDeviceVulkan13Properties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
pCopy = allocType<VkPipelineCompilerControlCreateInfoAMD>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineCompilerControlCreateInfoAMD));
copyIndirectData(*static_cast<VkPipelineCompilerControlCreateInfoAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
pCopy = allocType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD));
copyIndirectData(*static_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceToolProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceToolProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceToolProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
pCopy = allocType<VkSamplerCustomBorderColorCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerCustomBorderColorCreateInfoEXT));
copyIndirectData(*static_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceCustomBorderColorPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
pCopy = allocType<VkSamplerBorderColorComponentMappingCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT));
copyIndirectData(*static_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:
pCopy = allocType<VkAccelerationStructureGeometryTrianglesDataKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryTrianglesDataKHR));
copyIndirectData(*static_cast<VkAccelerationStructureGeometryTrianglesDataKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:
pCopy = allocType<VkAccelerationStructureGeometryAabbsDataKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryAabbsDataKHR));
copyIndirectData(*static_cast<VkAccelerationStructureGeometryAabbsDataKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:
pCopy = allocType<VkAccelerationStructureGeometryInstancesDataKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryInstancesDataKHR));
copyIndirectData(*static_cast<VkAccelerationStructureGeometryInstancesDataKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:
pCopy = allocType<VkAccelerationStructureGeometryKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryKHR));
copyIndirectData(*static_cast<VkAccelerationStructureGeometryKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:
pCopy = allocType<VkAccelerationStructureBuildGeometryInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureBuildGeometryInfoKHR));
copyIndirectData(*static_cast<VkAccelerationStructureBuildGeometryInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:
pCopy = allocType<VkAccelerationStructureCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureCreateInfoKHR));
copyIndirectData(*static_cast<VkAccelerationStructureCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:
pCopy = allocType<VkAccelerationStructureDeviceAddressInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureDeviceAddressInfoKHR));
copyIndirectData(*static_cast<VkAccelerationStructureDeviceAddressInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:
pCopy = allocType<VkAccelerationStructureVersionInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureVersionInfoKHR));
copyIndirectData(*static_cast<VkAccelerationStructureVersionInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:
pCopy = allocType<VkCopyAccelerationStructureInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkCopyAccelerationStructureInfoKHR));
copyIndirectData(*static_cast<VkCopyAccelerationStructureInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:
pCopy = allocType<VkCopyAccelerationStructureToMemoryInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkCopyAccelerationStructureToMemoryInfoKHR));
copyIndirectData(*static_cast<VkCopyAccelerationStructureToMemoryInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:
pCopy = allocType<VkCopyMemoryToAccelerationStructureInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkCopyMemoryToAccelerationStructureInfoKHR));
copyIndirectData(*static_cast<VkCopyMemoryToAccelerationStructureInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:
pCopy = allocType<VkRayTracingPipelineInterfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineInterfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkRayTracingPipelineInterfaceCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:
pCopy = allocType<VkPipelineLibraryCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineLibraryCreateInfoKHR));
copyIndirectData(*static_cast<VkPipelineLibraryCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
pCopy = allocType<VkRenderPassTransformBeginInfoQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassTransformBeginInfoQCOM));
copyIndirectData(*static_cast<VkRenderPassTransformBeginInfoQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
pCopy = allocType<VkCopyCommandTransformInfoQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkCopyCommandTransformInfoQCOM));
copyIndirectData(*static_cast<VkCopyCommandTransformInfoQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
pCopy = allocType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM));
copyIndirectData(*static_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
pCopy = allocType<VkDeviceDiagnosticsConfigCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkDeviceDiagnosticsConfigCreateInfoNV));
copyIndirectData(*static_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
pCopy = allocType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceRobustness2FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceRobustness2PropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRobustness2PropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
pCopy = allocType<VkPhysicalDeviceImageRobustnessFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceImageRobustnessFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevice4444FormatsFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
pCopy = allocType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI));
copyIndirectData(*static_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COPY_2:
pCopy = allocType<VkBufferCopy2>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCopy2));
copyIndirectData(*static_cast<VkBufferCopy2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_COPY_2:
pCopy = allocType<VkImageCopy2>();
std::memcpy(pCopy, pNext, sizeof(VkImageCopy2));
copyIndirectData(*static_cast<VkImageCopy2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:
pCopy = allocType<VkImageBlit2>();
std::memcpy(pCopy, pNext, sizeof(VkImageBlit2));
copyIndirectData(*static_cast<VkImageBlit2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:
pCopy = allocType<VkBufferImageCopy2>();
std::memcpy(pCopy, pNext, sizeof(VkBufferImageCopy2));
copyIndirectData(*static_cast<VkBufferImageCopy2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:
pCopy = allocType<VkImageResolve2>();
std::memcpy(pCopy, pNext, sizeof(VkImageResolve2));
copyIndirectData(*static_cast<VkImageResolve2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:
pCopy = allocType<VkCopyBufferInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkCopyBufferInfo2));
copyIndirectData(*static_cast<VkCopyBufferInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:
pCopy = allocType<VkCopyImageInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkCopyImageInfo2));
copyIndirectData(*static_cast<VkCopyImageInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:
pCopy = allocType<VkBlitImageInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkBlitImageInfo2));
copyIndirectData(*static_cast<VkBlitImageInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:
pCopy = allocType<VkCopyBufferToImageInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkCopyBufferToImageInfo2));
copyIndirectData(*static_cast<VkCopyBufferToImageInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:
pCopy = allocType<VkCopyImageToBufferInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkCopyImageToBufferInfo2));
copyIndirectData(*static_cast<VkCopyImageToBufferInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:
pCopy = allocType<VkResolveImageInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkResolveImageInfo2));
copyIndirectData(*static_cast<VkResolveImageInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
pCopy = allocType<VkFragmentShadingRateAttachmentInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkFragmentShadingRateAttachmentInfoKHR));
copyIndirectData(*static_cast<VkFragmentShadingRateAttachmentInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
pCopy = allocType<VkPipelineFragmentShadingRateStateCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR));
copyIndirectData(*static_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:
pCopy = allocType<VkPhysicalDeviceFragmentShadingRateKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShadingRateKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderTerminateInvocationFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
pCopy = allocType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
pCopy = allocType<VkPipelineFragmentShadingRateEnumStateCreateInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV));
copyIndirectData(*static_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:
pCopy = allocType<VkAccelerationStructureBuildSizesInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureBuildSizesInfoKHR));
copyIndirectData(*static_cast<VkAccelerationStructureBuildSizesInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
pCopy = allocType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE));
copyIndirectData(*static_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
pCopy = allocType<VkMutableDescriptorTypeCreateInfoVALVE>();
std::memcpy(pCopy, pNext, sizeof(VkMutableDescriptorTypeCreateInfoVALVE));
copyIndirectData(*static_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceDepthClipControlFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineViewportDepthClipControlCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineViewportDepthClipControlCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:
pCopy = allocType<VkVertexInputBindingDescription2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkVertexInputBindingDescription2EXT));
copyIndirectData(*static_cast<VkVertexInputBindingDescription2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:
pCopy = allocType<VkVertexInputAttributeDescription2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkVertexInputAttributeDescription2EXT));
copyIndirectData(*static_cast<VkVertexInputAttributeDescription2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineColorWriteCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineColorWriteCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineColorWriteCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:
pCopy = allocType<VkMemoryBarrier2>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryBarrier2));
copyIndirectData(*static_cast<VkMemoryBarrier2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:
pCopy = allocType<VkImageMemoryBarrier2>();
std::memcpy(pCopy, pNext, sizeof(VkImageMemoryBarrier2));
copyIndirectData(*static_cast<VkImageMemoryBarrier2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:
pCopy = allocType<VkBufferMemoryBarrier2>();
std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryBarrier2));
copyIndirectData(*static_cast<VkBufferMemoryBarrier2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:
pCopy = allocType<VkDependencyInfo>();
std::memcpy(pCopy, pNext, sizeof(VkDependencyInfo));
copyIndirectData(*static_cast<VkDependencyInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:
pCopy = allocType<VkSemaphoreSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreSubmitInfo));
copyIndirectData(*static_cast<VkSemaphoreSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:
pCopy = allocType<VkCommandBufferSubmitInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferSubmitInfo));
copyIndirectData(*static_cast<VkCommandBufferSubmitInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:
pCopy = allocType<VkSubmitInfo2>();
std::memcpy(pCopy, pNext, sizeof(VkSubmitInfo2));
copyIndirectData(*static_cast<VkSubmitInfo2*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
pCopy = allocType<VkQueueFamilyCheckpointProperties2NV>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyCheckpointProperties2NV));
copyIndirectData(*static_cast<VkQueueFamilyCheckpointProperties2NV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:
pCopy = allocType<VkCheckpointData2NV>();
std::memcpy(pCopy, pNext, sizeof(VkCheckpointData2NV));
copyIndirectData(*static_cast<VkCheckpointData2NV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
pCopy = allocType<VkPhysicalDeviceSynchronization2Features>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSynchronization2Features));
copyIndirectData(*static_cast<VkPhysicalDeviceSynchronization2Features*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:
pCopy = allocType<VkSubpassResolvePerformanceQueryEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSubpassResolvePerformanceQueryEXT));
copyIndirectData(*static_cast<VkSubpassResolvePerformanceQueryEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:
pCopy = allocType<VkMultisampledRenderToSingleSampledInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkMultisampledRenderToSingleSampledInfoEXT));
copyIndirectData(*static_cast<VkMultisampledRenderToSingleSampledInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
pCopy = allocType<VkCommandBufferInheritanceViewportScissorInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceViewportScissorInfoNV));
copyIndirectData(*static_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceProvokingVertexFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceProvokingVertexPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:
pCopy = allocType<VkCuModuleCreateInfoNVX>();
std::memcpy(pCopy, pNext, sizeof(VkCuModuleCreateInfoNVX));
copyIndirectData(*static_cast<VkCuModuleCreateInfoNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:
pCopy = allocType<VkCuFunctionCreateInfoNVX>();
std::memcpy(pCopy, pNext, sizeof(VkCuFunctionCreateInfoNVX));
copyIndirectData(*static_cast<VkCuFunctionCreateInfoNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:
pCopy = allocType<VkCuLaunchInfoNVX>();
std::memcpy(pCopy, pNext, sizeof(VkCuLaunchInfoNVX));
copyIndirectData(*static_cast<VkCuLaunchInfoNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
pCopy = allocType<VkPhysicalDeviceShaderIntegerDotProductFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
pCopy = allocType<VkPhysicalDeviceShaderIntegerDotProductProperties>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderIntegerDotProductProperties*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceDrmPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDrmPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceDrmPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:
pCopy = allocType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
pCopy = allocType<VkAccelerationStructureGeometryMotionTrianglesDataNV>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV));
copyIndirectData(*static_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
pCopy = allocType<VkAccelerationStructureMotionInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureMotionInfoNV));
copyIndirectData(*static_cast<VkAccelerationStructureMotionInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:
pCopy = allocType<VkMemoryGetRemoteAddressInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryGetRemoteAddressInfoNV));
copyIndirectData(*static_cast<VkMemoryGetRemoteAddressInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
pCopy = allocType<VkFormatProperties3>();
std::memcpy(pCopy, pNext, sizeof(VkFormatProperties3));
copyIndirectData(*static_cast<VkFormatProperties3*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
pCopy = allocType<VkDrmFormatModifierPropertiesList2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkDrmFormatModifierPropertiesList2EXT));
copyIndirectData(*static_cast<VkDrmFormatModifierPropertiesList2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:
pCopy = allocType<VkPipelineRenderingCreateInfo>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRenderingCreateInfo));
copyIndirectData(*static_cast<VkPipelineRenderingCreateInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDERING_INFO:
pCopy = allocType<VkRenderingInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderingInfo));
copyIndirectData(*static_cast<VkRenderingInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:
pCopy = allocType<VkRenderingAttachmentInfo>();
std::memcpy(pCopy, pNext, sizeof(VkRenderingAttachmentInfo));
copyIndirectData(*static_cast<VkRenderingAttachmentInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
pCopy = allocType<VkRenderingFragmentShadingRateAttachmentInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR));
copyIndirectData(*static_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
pCopy = allocType<VkRenderingFragmentDensityMapAttachmentInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT));
copyIndirectData(*static_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
pCopy = allocType<VkPhysicalDeviceDynamicRenderingFeatures>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
copyIndirectData(*static_cast<VkPhysicalDeviceDynamicRenderingFeatures*>(pCopy));
break;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:
pCopy = allocType<VkCommandBufferInheritanceRenderingInfo>();
std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceRenderingInfo));
copyIndirectData(*static_cast<VkCommandBufferInheritanceRenderingInfo*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
pCopy = allocType<VkAttachmentSampleCountInfoAMD>();
std::memcpy(pCopy, pNext, sizeof(VkAttachmentSampleCountInfoAMD));
copyIndirectData(*static_cast<VkAttachmentSampleCountInfoAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
pCopy = allocType<VkMultiviewPerViewAttributesInfoNVX>();
std::memcpy(pCopy, pNext, sizeof(VkMultiviewPerViewAttributesInfoNVX));
copyIndirectData(*static_cast<VkMultiviewPerViewAttributesInfoNVX*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:
pCopy = allocType<VkImageViewMinLodCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageViewMinLodCreateInfoEXT));
copyIndirectData(*static_cast<VkImageViewMinLodCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
pCopy = allocType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV));
copyIndirectData(*static_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:
pCopy = allocType<VkGraphicsPipelineLibraryCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineLibraryCreateInfoEXT));
copyIndirectData(*static_cast<VkGraphicsPipelineLibraryCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:
pCopy = allocType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE));
copyIndirectData(*static_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:
pCopy = allocType<VkDescriptorSetBindingReferenceVALVE>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetBindingReferenceVALVE));
copyIndirectData(*static_cast<VkDescriptorSetBindingReferenceVALVE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:
pCopy = allocType<VkDescriptorSetLayoutHostMappingInfoVALVE>();
std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutHostMappingInfoVALVE));
copyIndirectData(*static_cast<VkDescriptorSetLayoutHostMappingInfoVALVE*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineShaderStageModuleIdentifierCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineShaderStageModuleIdentifierCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:
pCopy = allocType<VkShaderModuleIdentifierEXT>();
std::memcpy(pCopy, pNext, sizeof(VkShaderModuleIdentifierEXT));
copyIndirectData(*static_cast<VkShaderModuleIdentifierEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:
pCopy = allocType<VkImageCompressionControlEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageCompressionControlEXT));
copyIndirectData(*static_cast<VkImageCompressionControlEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:
pCopy = allocType<VkImageCompressionPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageCompressionPropertiesEXT));
copyIndirectData(*static_cast<VkImageCompressionPropertiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:
pCopy = allocType<VkImageSubresource2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkImageSubresource2EXT));
copyIndirectData(*static_cast<VkImageSubresource2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:
pCopy = allocType<VkSubresourceLayout2EXT>();
std::memcpy(pCopy, pNext, sizeof(VkSubresourceLayout2EXT));
copyIndirectData(*static_cast<VkSubresourceLayout2EXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:
pCopy = allocType<VkRenderPassCreationControlEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreationControlEXT));
copyIndirectData(*static_cast<VkRenderPassCreationControlEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:
pCopy = allocType<VkRenderPassCreationFeedbackCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreationFeedbackCreateInfoEXT));
copyIndirectData(*static_cast<VkRenderPassCreationFeedbackCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:
pCopy = allocType<VkRenderPassSubpassFeedbackCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT));
copyIndirectData(*static_cast<VkRenderPassSubpassFeedbackCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:
pCopy = allocType<VkPipelinePropertiesIdentifierEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelinePropertiesIdentifierEXT));
copyIndirectData(*static_cast<VkPipelinePropertiesIdentifierEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:
pCopy = allocType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD));
copyIndirectData(*static_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:
pCopy = allocType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:
pCopy = allocType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:
pCopy = allocType<VkPipelineRobustnessCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPipelineRobustnessCreateInfoEXT));
copyIndirectData(*static_cast<VkPipelineRobustnessCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:
pCopy = allocType<VkPhysicalDevicePipelineRobustnessPropertiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT));
copyIndirectData(*static_cast<VkPhysicalDevicePipelineRobustnessPropertiesEXT*>(pCopy));
break;
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkAndroidSurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkAndroidSurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkAndroidSurfaceCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
pCopy = allocType<VkNativeBufferANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkNativeBufferANDROID));
copyIndirectData(*static_cast<VkNativeBufferANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID:
pCopy = allocType<VkSwapchainImageCreateInfoANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkSwapchainImageCreateInfoANDROID));
copyIndirectData(*static_cast<VkSwapchainImageCreateInfoANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID:
pCopy = allocType<VkPhysicalDevicePresentationPropertiesANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentationPropertiesANDROID));
copyIndirectData(*static_cast<VkPhysicalDevicePresentationPropertiesANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
pCopy = allocType<VkImportAndroidHardwareBufferInfoANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkImportAndroidHardwareBufferInfoANDROID));
copyIndirectData(*static_cast<VkImportAndroidHardwareBufferInfoANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
pCopy = allocType<VkAndroidHardwareBufferUsageANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferUsageANDROID));
copyIndirectData(*static_cast<VkAndroidHardwareBufferUsageANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:
pCopy = allocType<VkAndroidHardwareBufferPropertiesANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferPropertiesANDROID));
copyIndirectData(*static_cast<VkAndroidHardwareBufferPropertiesANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
pCopy = allocType<VkMemoryGetAndroidHardwareBufferInfoANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryGetAndroidHardwareBufferInfoANDROID));
copyIndirectData(*static_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
pCopy = allocType<VkAndroidHardwareBufferFormatPropertiesANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferFormatPropertiesANDROID));
copyIndirectData(*static_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
pCopy = allocType<VkExternalFormatANDROID>();
std::memcpy(pCopy, pNext, sizeof(VkExternalFormatANDROID));
copyIndirectData(*static_cast<VkExternalFormatANDROID*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_ANDROID_KHR)
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:
pCopy = allocType<VkDirectFBSurfaceCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkDirectFBSurfaceCreateInfoEXT));
copyIndirectData(*static_cast<VkDirectFBSurfaceCreateInfoEXT*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#if defined(VK_USE_PLATFORM_FUCHSIA)
case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:
pCopy = allocType<VkImagePipeSurfaceCreateInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImagePipeSurfaceCreateInfoFUCHSIA));
copyIndirectData(*static_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
pCopy = allocType<VkImportMemoryZirconHandleInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryZirconHandleInfoFUCHSIA));
copyIndirectData(*static_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:
pCopy = allocType<VkMemoryZirconHandlePropertiesFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryZirconHandlePropertiesFUCHSIA));
copyIndirectData(*static_cast<VkMemoryZirconHandlePropertiesFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
pCopy = allocType<VkMemoryGetZirconHandleInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryGetZirconHandleInfoFUCHSIA));
copyIndirectData(*static_cast<VkMemoryGetZirconHandleInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:
pCopy = allocType<VkImportSemaphoreZirconHandleInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreZirconHandleInfoFUCHSIA));
copyIndirectData(*static_cast<VkImportSemaphoreZirconHandleInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
pCopy = allocType<VkSemaphoreGetZirconHandleInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetZirconHandleInfoFUCHSIA));
copyIndirectData(*static_cast<VkSemaphoreGetZirconHandleInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
pCopy = allocType<VkImportMemoryBufferCollectionFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryBufferCollectionFUCHSIA));
copyIndirectData(*static_cast<VkImportMemoryBufferCollectionFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
pCopy = allocType<VkBufferCollectionImageCreateInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionImageCreateInfoFUCHSIA));
copyIndirectData(*static_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
pCopy = allocType<VkBufferCollectionBufferCreateInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA));
copyIndirectData(*static_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:
pCopy = allocType<VkBufferCollectionCreateInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionCreateInfoFUCHSIA));
copyIndirectData(*static_cast<VkBufferCollectionCreateInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:
pCopy = allocType<VkBufferCollectionPropertiesFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionPropertiesFUCHSIA));
copyIndirectData(*static_cast<VkBufferCollectionPropertiesFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:
pCopy = allocType<VkBufferConstraintsInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferConstraintsInfoFUCHSIA));
copyIndirectData(*static_cast<VkBufferConstraintsInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:
pCopy = allocType<VkSysmemColorSpaceFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkSysmemColorSpaceFUCHSIA));
copyIndirectData(*static_cast<VkSysmemColorSpaceFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:
pCopy = allocType<VkImageFormatConstraintsInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImageFormatConstraintsInfoFUCHSIA));
copyIndirectData(*static_cast<VkImageFormatConstraintsInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:
pCopy = allocType<VkImageConstraintsInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkImageConstraintsInfoFUCHSIA));
copyIndirectData(*static_cast<VkImageConstraintsInfoFUCHSIA*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:
pCopy = allocType<VkBufferCollectionConstraintsInfoFUCHSIA>();
std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionConstraintsInfoFUCHSIA));
copyIndirectData(*static_cast<VkBufferCollectionConstraintsInfoFUCHSIA*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_FUCHSIA)
#if defined(VK_USE_PLATFORM_GGP)
case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:
pCopy = allocType<VkStreamDescriptorSurfaceCreateInfoGGP>();
std::memcpy(pCopy, pNext, sizeof(VkStreamDescriptorSurfaceCreateInfoGGP));
copyIndirectData(*static_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
pCopy = allocType<VkPresentFrameTokenGGP>();
std::memcpy(pCopy, pNext, sizeof(VkPresentFrameTokenGGP));
copyIndirectData(*static_cast<VkPresentFrameTokenGGP*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_GGP)
#if defined(VK_USE_PLATFORM_IOS_MVK)
case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:
pCopy = allocType<VkIOSSurfaceCreateInfoMVK>();
std::memcpy(pCopy, pNext, sizeof(VkIOSSurfaceCreateInfoMVK));
copyIndirectData(*static_cast<VkIOSSurfaceCreateInfoMVK*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_IOS_MVK)
#if defined(VK_USE_PLATFORM_MACOS_MVK)
case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:
pCopy = allocType<VkMacOSSurfaceCreateInfoMVK>();
std::memcpy(pCopy, pNext, sizeof(VkMacOSSurfaceCreateInfoMVK));
copyIndirectData(*static_cast<VkMacOSSurfaceCreateInfoMVK*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_MACOS_MVK)
#if defined(VK_USE_PLATFORM_METAL_EXT)
case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:
pCopy = allocType<VkMetalSurfaceCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkMetalSurfaceCreateInfoEXT));
copyIndirectData(*static_cast<VkMetalSurfaceCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:
pCopy = allocType<VkExportMetalObjectCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalObjectCreateInfoEXT));
copyIndirectData(*static_cast<VkExportMetalObjectCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:
pCopy = allocType<VkExportMetalObjectsInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalObjectsInfoEXT));
copyIndirectData(*static_cast<VkExportMetalObjectsInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:
pCopy = allocType<VkExportMetalDeviceInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalDeviceInfoEXT));
copyIndirectData(*static_cast<VkExportMetalDeviceInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:
pCopy = allocType<VkExportMetalCommandQueueInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalCommandQueueInfoEXT));
copyIndirectData(*static_cast<VkExportMetalCommandQueueInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:
pCopy = allocType<VkExportMetalBufferInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalBufferInfoEXT));
copyIndirectData(*static_cast<VkExportMetalBufferInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:
pCopy = allocType<VkImportMetalBufferInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImportMetalBufferInfoEXT));
copyIndirectData(*static_cast<VkImportMetalBufferInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:
pCopy = allocType<VkExportMetalTextureInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalTextureInfoEXT));
copyIndirectData(*static_cast<VkExportMetalTextureInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:
pCopy = allocType<VkImportMetalTextureInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImportMetalTextureInfoEXT));
copyIndirectData(*static_cast<VkImportMetalTextureInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:
pCopy = allocType<VkExportMetalIOSurfaceInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalIOSurfaceInfoEXT));
copyIndirectData(*static_cast<VkExportMetalIOSurfaceInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:
pCopy = allocType<VkImportMetalIOSurfaceInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImportMetalIOSurfaceInfoEXT));
copyIndirectData(*static_cast<VkImportMetalIOSurfaceInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:
pCopy = allocType<VkExportMetalSharedEventInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkExportMetalSharedEventInfoEXT));
copyIndirectData(*static_cast<VkExportMetalSharedEventInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:
pCopy = allocType<VkImportMetalSharedEventInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkImportMetalSharedEventInfoEXT));
copyIndirectData(*static_cast<VkImportMetalSharedEventInfoEXT*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_METAL_EXT)
#if defined(VK_ENABLE_BETA_EXTENSIONS)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
pCopy = allocType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
pCopy = allocType<VkPhysicalDevicePortabilitySubsetPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR));
copyIndirectData(*static_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:
pCopy = allocType<VkQueueFamilyVideoPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyVideoPropertiesKHR));
copyIndirectData(*static_cast<VkQueueFamilyVideoPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:
pCopy = allocType<VkQueueFamilyQueryResultStatusPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR));
copyIndirectData(*static_cast<VkQueueFamilyQueryResultStatusPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:
pCopy = allocType<VkVideoProfileListInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoProfileListInfoKHR));
copyIndirectData(*static_cast<VkVideoProfileListInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:
pCopy = allocType<VkPhysicalDeviceVideoFormatInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVideoFormatInfoKHR));
copyIndirectData(*static_cast<VkPhysicalDeviceVideoFormatInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:
pCopy = allocType<VkVideoFormatPropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoFormatPropertiesKHR));
copyIndirectData(*static_cast<VkVideoFormatPropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:
pCopy = allocType<VkVideoProfileInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoProfileInfoKHR));
copyIndirectData(*static_cast<VkVideoProfileInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:
pCopy = allocType<VkVideoCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoCapabilitiesKHR));
copyIndirectData(*static_cast<VkVideoCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:
pCopy = allocType<VkVideoSessionMemoryRequirementsKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoSessionMemoryRequirementsKHR));
copyIndirectData(*static_cast<VkVideoSessionMemoryRequirementsKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:
pCopy = allocType<VkBindVideoSessionMemoryInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkBindVideoSessionMemoryInfoKHR));
copyIndirectData(*static_cast<VkBindVideoSessionMemoryInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:
pCopy = allocType<VkVideoPictureResourceInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoPictureResourceInfoKHR));
copyIndirectData(*static_cast<VkVideoPictureResourceInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:
pCopy = allocType<VkVideoReferenceSlotInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoReferenceSlotInfoKHR));
copyIndirectData(*static_cast<VkVideoReferenceSlotInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:
pCopy = allocType<VkVideoDecodeCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeCapabilitiesKHR));
copyIndirectData(*static_cast<VkVideoDecodeCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:
pCopy = allocType<VkVideoDecodeUsageInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeUsageInfoKHR));
copyIndirectData(*static_cast<VkVideoDecodeUsageInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:
pCopy = allocType<VkVideoDecodeInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeInfoKHR));
copyIndirectData(*static_cast<VkVideoDecodeInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264ProfileInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264ProfileInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264ProfileInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
pCopy = allocType<VkVideoDecodeH264CapabilitiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264CapabilitiesEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264CapabilitiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264SessionParametersAddInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264SessionParametersAddInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264SessionParametersCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264SessionParametersCreateInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264PictureInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264PictureInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264PictureInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264DpbSlotInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264DpbSlotInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_INFO_EXT:
pCopy = allocType<VkVideoDecodeH264MvcInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264MvcInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH264MvcInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH265ProfileInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265ProfileInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265ProfileInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
pCopy = allocType<VkVideoDecodeH265CapabilitiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265CapabilitiesEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265CapabilitiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
pCopy = allocType<VkVideoDecodeH265SessionParametersAddInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265SessionParametersAddInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH265SessionParametersCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265SessionParametersCreateInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
pCopy = allocType<VkVideoDecodeH265PictureInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265PictureInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265PictureInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
pCopy = allocType<VkVideoDecodeH265DpbSlotInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265DpbSlotInfoEXT));
copyIndirectData(*static_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:
pCopy = allocType<VkVideoSessionCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoSessionCreateInfoKHR));
copyIndirectData(*static_cast<VkVideoSessionCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:
pCopy = allocType<VkVideoSessionParametersCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoSessionParametersCreateInfoKHR));
copyIndirectData(*static_cast<VkVideoSessionParametersCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:
pCopy = allocType<VkVideoSessionParametersUpdateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoSessionParametersUpdateInfoKHR));
copyIndirectData(*static_cast<VkVideoSessionParametersUpdateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:
pCopy = allocType<VkVideoBeginCodingInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoBeginCodingInfoKHR));
copyIndirectData(*static_cast<VkVideoBeginCodingInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:
pCopy = allocType<VkVideoEndCodingInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEndCodingInfoKHR));
copyIndirectData(*static_cast<VkVideoEndCodingInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:
pCopy = allocType<VkVideoCodingControlInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoCodingControlInfoKHR));
copyIndirectData(*static_cast<VkVideoCodingControlInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:
pCopy = allocType<VkVideoEncodeUsageInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeUsageInfoKHR));
copyIndirectData(*static_cast<VkVideoEncodeUsageInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:
pCopy = allocType<VkVideoEncodeInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeInfoKHR));
copyIndirectData(*static_cast<VkVideoEncodeInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
pCopy = allocType<VkVideoEncodeRateControlInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeRateControlInfoKHR));
copyIndirectData(*static_cast<VkVideoEncodeRateControlInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:
pCopy = allocType<VkVideoEncodeRateControlLayerInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeRateControlLayerInfoKHR));
copyIndirectData(*static_cast<VkVideoEncodeRateControlLayerInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:
pCopy = allocType<VkVideoEncodeCapabilitiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeCapabilitiesKHR));
copyIndirectData(*static_cast<VkVideoEncodeCapabilitiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
pCopy = allocType<VkVideoEncodeH264CapabilitiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264CapabilitiesEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264CapabilitiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264SessionParametersAddInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264SessionParametersCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264DpbSlotInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264DpbSlotInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264DpbSlotInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264VclFrameInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264VclFrameInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264VclFrameInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264ReferenceListsInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264ReferenceListsInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264ReferenceListsInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264EmitPictureParametersInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264EmitPictureParametersInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264EmitPictureParametersInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264ProfileInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264ProfileInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264ProfileInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264NaluSliceInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264NaluSliceInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264NaluSliceInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264RateControlInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264RateControlInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264RateControlInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:
pCopy = allocType<VkVideoEncodeH264RateControlLayerInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264RateControlLayerInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH264RateControlLayerInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
pCopy = allocType<VkVideoEncodeH265CapabilitiesEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265CapabilitiesEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265CapabilitiesEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265SessionParametersAddInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265SessionParametersCreateInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265VclFrameInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265VclFrameInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265VclFrameInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265EmitPictureParametersInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265EmitPictureParametersInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265EmitPictureParametersInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265NaluSliceSegmentInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265NaluSliceSegmentInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265NaluSliceSegmentInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265RateControlInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265RateControlInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265RateControlInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265RateControlLayerInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265RateControlLayerInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265RateControlLayerInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265ProfileInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265ProfileInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265ProfileInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265DpbSlotInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265DpbSlotInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265DpbSlotInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT:
pCopy = allocType<VkVideoEncodeH265ReferenceListsInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265ReferenceListsInfoEXT));
copyIndirectData(*static_cast<VkVideoEncodeH265ReferenceListsInfoEXT*>(pCopy));
break;
#endif // defined(VK_ENABLE_BETA_EXTENSIONS)
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:
pCopy = allocType<VkScreenSurfaceCreateInfoQNX>();
std::memcpy(pCopy, pNext, sizeof(VkScreenSurfaceCreateInfoQNX));
copyIndirectData(*static_cast<VkScreenSurfaceCreateInfoQNX*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_SCREEN_QNX)
#if defined(VK_USE_PLATFORM_VI_NN)
case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:
pCopy = allocType<VkViSurfaceCreateInfoNN>();
std::memcpy(pCopy, pNext, sizeof(VkViSurfaceCreateInfoNN));
copyIndirectData(*static_cast<VkViSurfaceCreateInfoNN*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_VI_NN)
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkWaylandSurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkWaylandSurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkWaylandSurfaceCreateInfoKHR*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_WAYLAND_KHR)
#if defined(VK_USE_PLATFORM_WIN32_KHR)
case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkWin32SurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkWin32SurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkWin32SurfaceCreateInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
pCopy = allocType<VkImportMemoryWin32HandleInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryWin32HandleInfoNV));
copyIndirectData(*static_cast<VkImportMemoryWin32HandleInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
pCopy = allocType<VkExportMemoryWin32HandleInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkExportMemoryWin32HandleInfoNV));
copyIndirectData(*static_cast<VkExportMemoryWin32HandleInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
pCopy = allocType<VkWin32KeyedMutexAcquireReleaseInfoNV>();
std::memcpy(pCopy, pNext, sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV));
copyIndirectData(*static_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkImportMemoryWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportMemoryWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkImportMemoryWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkExportMemoryWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkExportMemoryWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkExportMemoryWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:
pCopy = allocType<VkMemoryWin32HandlePropertiesKHR>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryWin32HandlePropertiesKHR));
copyIndirectData(*static_cast<VkMemoryWin32HandlePropertiesKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkMemoryGetWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkMemoryGetWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkMemoryGetWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
pCopy = allocType<VkWin32KeyedMutexAcquireReleaseInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR));
copyIndirectData(*static_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkImportSemaphoreWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkImportSemaphoreWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkExportSemaphoreWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkExportSemaphoreWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkExportSemaphoreWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
pCopy = allocType<VkD3D12FenceSubmitInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkD3D12FenceSubmitInfoKHR));
copyIndirectData(*static_cast<VkD3D12FenceSubmitInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkSemaphoreGetWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkSemaphoreGetWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkImportFenceWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkImportFenceWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkImportFenceWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkExportFenceWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkExportFenceWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkExportFenceWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:
pCopy = allocType<VkFenceGetWin32HandleInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkFenceGetWin32HandleInfoKHR));
copyIndirectData(*static_cast<VkFenceGetWin32HandleInfoKHR*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
pCopy = allocType<VkSurfaceFullScreenExclusiveInfoEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceFullScreenExclusiveInfoEXT));
copyIndirectData(*static_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(pCopy));
break;
case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
pCopy = allocType<VkSurfaceCapabilitiesFullScreenExclusiveEXT>();
std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT));
copyIndirectData(*static_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_WIN32_KHR)
#if defined(VK_USE_PLATFORM_XCB_KHR)
case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkXcbSurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkXcbSurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkXcbSurfaceCreateInfoKHR*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_XCB_KHR)
#if defined(VK_USE_PLATFORM_XLIB_KHR)
case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:
pCopy = allocType<VkXlibSurfaceCreateInfoKHR>();
std::memcpy(pCopy, pNext, sizeof(VkXlibSurfaceCreateInfoKHR));
copyIndirectData(*static_cast<VkXlibSurfaceCreateInfoKHR*>(pCopy));
break;
#endif // defined(VK_USE_PLATFORM_XLIB_KHR)
default: break;
}
return pCopy;
}
} // namespace vk_capture
#endif // VK_CAPTURE_VARIANT_WRAP_HPP_INCLUDED