// 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 #include #include #include "common.hpp" #include "vk_capture.h" namespace vk_capture { inline void* copyNextPtr(const void* pNext); // do nothing by default template inline void copyIndirectData(const T&) {} inline void copyIndirectData(const char*& value) { const std::size_t len = std::strlen(value) + 1; char* copy = allocType(len); std::memcpy(copy, value, len); value = copy; } template inline void copyIndirectData(const TStruct*& value) { TStruct* copy = allocType(); 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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = std::strlen(value.pApplicationName) + 1; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pEngineName) + 1; auto copy = allocType(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 std::size_t numElements = value.queueCount; auto copy = allocType(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 std::size_t numElements = value.queueCreateInfoCount; auto copy = allocType(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 std::size_t numElements = value.enabledLayerCount; auto copy = allocType(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 std::size_t numElements = value.enabledExtensionCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.enabledLayerCount; auto copy = allocType(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 std::size_t numElements = value.enabledExtensionCount; auto copy = allocType(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 std::size_t numElements = value.descriptorCount; auto copy = allocType(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 std::size_t numElements = value.descriptorCount; auto copy = allocType(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 std::size_t numElements = value.descriptorCount; auto copy = allocType(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 std::size_t numElements = value.queueFamilyIndexCount; auto copy = allocType(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 std::size_t numElements = value.queueFamilyIndexCount; auto copy = allocType(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 std::size_t numElements = value.bindCount; auto copy = allocType(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 std::size_t numElements = value.bindCount; auto copy = allocType(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 std::size_t numElements = value.bindCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.bufferBindCount; auto copy = allocType(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 std::size_t numElements = value.imageOpaqueBindCount; auto copy = allocType(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 std::size_t numElements = value.imageBindCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.codeSize / 4; auto copy = allocType(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 std::size_t numElements = value.descriptorCount; auto copy = allocType(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 std::size_t numElements = value.bindingCount; auto copy = allocType(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 std::size_t numElements = value.poolSizeCount; auto copy = allocType(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 std::size_t numElements = value.descriptorSetCount; auto copy = allocType(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 std::size_t numElements = value.mapEntryCount; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pName) + 1; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.vertexBindingDescriptionCount; auto copy = allocType(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 std::size_t numElements = value.vertexAttributeDescriptionCount; auto copy = allocType(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 std::size_t numElements = value.viewportCount; auto copy = allocType(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 std::size_t numElements = value.scissorCount; auto copy = allocType(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 std::size_t numElements = (value.rasterizationSamples + 31) / 32; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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 std::size_t numElements = value.dynamicStateCount; auto copy = allocType(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 std::size_t numElements = value.stageCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.setLayoutCount; auto copy = allocType(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 std::size_t numElements = value.pushConstantRangeCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.clearValueCount; auto copy = allocType(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 std::size_t numElements = value.inputAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.preserveAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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 std::size_t numElements = value.subpassCount; auto copy = allocType(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 std::size_t numElements = value.dependencyCount; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.commandBufferCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreCount; auto copy = allocType(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 std::size_t numElements = std::strlen(value.displayName) + 1; auto copy = allocType(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 std::size_t numElements = value.queueFamilyIndexCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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; const std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.disabledValidationCheckCount; auto copy = allocType(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 std::size_t numElements = value.enabledValidationFeatureCount; auto copy = allocType(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 std::size_t numElements = value.disabledValidationFeatureCount; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pObjectName) + 1; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pMarkerName) + 1; auto copy = allocType(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 std::size_t numElements = value.stageCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.groupCount; auto copy = allocType(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 std::size_t numElements = value.pipelineCount; auto copy = allocType(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 std::size_t numElements = value.indexTypeCount; auto copy = allocType(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 std::size_t numElements = value.indexTypeCount; auto copy = allocType(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 std::size_t numElements = value.tokenCount; auto copy = allocType(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 std::size_t numElements = value.streamCount; auto copy = allocType(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 std::size_t numElements = value.streamCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.rectangleCount; auto copy = allocType(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 std::size_t numElements = value.subpassCount; auto copy = allocType(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 std::size_t numElements = value.dependencyCount; auto copy = allocType(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 std::size_t numElements = value.correlationMaskCount; auto copy = allocType(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 std::size_t numElements = value.deviceIndexCount; auto copy = allocType(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 std::size_t numElements = value.deviceIndexCount; auto copy = allocType(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 std::size_t numElements = value.splitInstanceBindRegionCount; auto copy = allocType(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 std::size_t numElements = value.deviceRenderAreaCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.commandBufferCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.physicalDeviceCount; auto copy = allocType(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 std::size_t numElements = value.descriptorUpdateEntryCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.swapchainCount; auto copy = allocType(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 std::size_t numElements = value.viewportCount; auto copy = allocType(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 std::size_t numElements = value.viewportCount; auto copy = allocType(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 std::size_t numElements = value.discardRectangleCount; auto copy = allocType(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 std::size_t numElements = value.aspectReferenceCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.sampleLocationsCount; auto copy = allocType(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 std::size_t numElements = value.attachmentInitialSampleLocationsCount; auto copy = allocType(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 std::size_t numElements = value.postSubpassSampleLocationsCount; auto copy = allocType(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 std::size_t numElements = value.coverageModulationTableCount; auto copy = allocType(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 std::size_t numElements = value.viewFormatCount; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pObjectName) + 1; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pLabelName) + 1; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pMessageIdName) + 1; auto copy = allocType(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 std::size_t numElements = std::strlen(value.pMessage) + 1; auto copy = allocType(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 std::size_t numElements = value.queueLabelCount; auto copy = allocType(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 std::size_t numElements = value.cmdBufLabelCount; auto copy = allocType(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 std::size_t numElements = value.objectCount; auto copy = allocType(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 std::size_t numElements = value.bindingCount; auto copy = allocType(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 std::size_t numElements = value.descriptorSetCount; auto copy = allocType(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 std::size_t numElements = value.inputAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.preserveAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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 std::size_t numElements = value.subpassCount; auto copy = allocType(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 std::size_t numElements = value.dependencyCount; auto copy = allocType(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 std::size_t numElements = value.correlatedViewMaskCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreValueCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreValueCount; auto copy = allocType(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 std::size_t numElements = value.semaphoreCount; auto copy = allocType(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 std::size_t numElements = value.semaphoreCount; auto copy = allocType(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 std::size_t numElements = value.vertexBindingDivisorCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.exclusiveScissorCount; auto copy = allocType(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 std::size_t numElements = value.shadingRatePaletteEntryCount; auto copy = allocType(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 std::size_t numElements = value.viewportCount; auto copy = allocType(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 std::size_t numElements = value.sampleLocationCount; auto copy = allocType(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 std::size_t numElements = value.customSampleOrderCount; auto copy = allocType(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 std::size_t numElements = value.stageCount; auto copy = allocType(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 std::size_t numElements = value.groupCount; auto copy = allocType(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 std::size_t numElements = value.stageCount; auto copy = allocType(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 std::size_t numElements = value.groupCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.geometryCount; auto copy = allocType(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 std::size_t numElements = value.deviceIndexCount; auto copy = allocType(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 std::size_t numElements = value.accelerationStructureCount; auto copy = allocType(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 std::size_t numElements = value.accelerationStructureCount; auto copy = allocType(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; const std::size_t numElements = value.drmFormatModifierCount; auto copy = allocType(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 std::size_t numElements = value.queueFamilyIndexCount; auto copy = allocType(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 std::size_t numElements = value.drmFormatModifierCount; auto copy = allocType(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 std::size_t numElements = value.drmFormatModifierPlaneCount; auto copy = allocType(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 std::size_t numElements = value.fragmentDensityOffsetCount; auto copy = allocType(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 std::size_t numElements = value.attachmentImageInfoCount; auto copy = allocType(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 std::size_t numElements = value.viewFormatCount; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; const std::size_t numElements = value.pipelineStageCreationFeedbackCount; auto copy = allocType(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 std::size_t numElements = value.counterIndexCount; auto copy = allocType(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 std::size_t numElements = value.geometryCount; auto copy = allocType(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 std::size_t numElements = value.geometryCount; auto copy = allocType(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 std::size_t numElements = 2 * VK_UUID_SIZE; auto copy = allocType(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 std::size_t numElements = value.libraryCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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 std::size_t numElements = value.regionCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.descriptorTypeCount; auto copy = allocType(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 std::size_t numElements = value.mutableDescriptorTypeListCount; auto copy = allocType(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 std::size_t numElements = value.attachmentCount; auto copy = allocType(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 std::size_t numElements = value.memoryBarrierCount; auto copy = allocType(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 std::size_t numElements = value.bufferMemoryBarrierCount; auto copy = allocType(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 std::size_t numElements = value.imageMemoryBarrierCount; auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreInfoCount; auto copy = allocType(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 std::size_t numElements = value.commandBufferInfoCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreInfoCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = std::strlen(value.pName) + 1; auto copy = allocType(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; const std::size_t numElements = value.drmFormatModifierCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.colorAttachmentCount; auto copy = allocType(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 std::size_t numElements = value.identifierSize; auto copy = allocType(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; const std::size_t numElements = value.compressionControlPlaneCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.colorSpaceCount; auto copy = allocType(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 std::size_t numElements = value.formatConstraintsCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.profileCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.referenceSlotCount; auto copy = allocType(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 std::size_t numElements = value.spsStdCount; auto copy = allocType(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 std::size_t numElements = value.ppsStdCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.slicesCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.vpsStdCount; auto copy = allocType(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 std::size_t numElements = value.spsStdCount; auto copy = allocType(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 std::size_t numElements = value.ppsStdCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.slicesCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.referenceSlotCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.referenceSlotCount; auto copy = allocType(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 std::size_t numElements = value.layerCount; auto copy = allocType(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 std::size_t numElements = value.spsStdCount; auto copy = allocType(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 std::size_t numElements = value.ppsStdCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.naluSliceEntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.referenceList0EntryCount; auto copy = allocType(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 std::size_t numElements = value.referenceList1EntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.ppsIdEntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.vpsStdCount; auto copy = allocType(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 std::size_t numElements = value.spsStdCount; auto copy = allocType(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 std::size_t numElements = value.ppsStdCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.naluSliceSegmentEntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.ppsIdEntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.referenceList0EntryCount; auto copy = allocType(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 std::size_t numElements = value.referenceList1EntryCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.releaseCount; auto copy = allocType(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 std::size_t numElements = value.releaseCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.acquireCount; auto copy = allocType(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 std::size_t numElements = value.releaseCount; auto copy = allocType(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 std::size_t numElements = value.releaseCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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 std::size_t numElements = value.waitSemaphoreValuesCount; auto copy = allocType(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 std::size_t numElements = value.signalSemaphoreValuesCount; auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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; static constexpr std::size_t numElements = 1; // TODO auto copy = allocType(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.outStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(); outVariant.inStructureValue = reinterpret_cast(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(pNext); void* pCopy = nullptr; switch (sType) { case VK_STRUCTURE_TYPE_APPLICATION_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkApplicationInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkInstanceCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMappedMemoryRange)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSet)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyDescriptorSet)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferViewCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_BARRIER: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryBarrier)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryBarrier)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageMemoryBarrier)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindSparseInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkShaderModuleCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorPoolCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkComputePipelineCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineVertexInputStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineInputAssemblyStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineTessellationStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineMultisampleStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineColorBlendStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineDynamicStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineDepthStencilStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCacheCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineLayoutCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandPoolCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkEventCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFenceCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueryPoolCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFramebufferCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayModeCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplaySurfaceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayPresentInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSwapchainCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPresentInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugReportCallbackCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkValidationFlagsEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkValidationFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateRasterizationOrderAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerObjectNameInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerObjectTagInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugMarkerMarkerInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationImageCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationBufferCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDedicatedAllocationMemoryAllocateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryImageCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMemoryAllocateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDevicePrivateDataCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPrivateDataSlotCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrivateDataFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGraphicsShaderGroupCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkIndirectCommandsLayoutTokenNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkIndirectCommandsLayoutCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGeneratedCommandsInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGeneratedCommandsMemoryRequirementsInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFeatures2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFormatProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageFormatProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageFormatInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSparseImageFormatProperties2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSparseImageFormatInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDriverProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPresentRegionsKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVariablePointersFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalImageFormatInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalImageFormatProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalBufferInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalBufferProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceIDProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryImageCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalMemoryBufferCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMemoryAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryFdPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryGetFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalSemaphoreInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalSemaphoreProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportSemaphoreCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalFenceInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalFenceProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportFenceCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportFenceFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFenceGetFdInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassMultiviewCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilities2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayPowerInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceEventInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayEventInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSwapchainCounterCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGroupProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryAllocateFlagsInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindBufferMemoryInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindBufferMemoryDeviceGroupInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindImageMemoryInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindImageMemoryDeviceGroupInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupRenderPassBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupCommandBufferBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupBindSparseInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupPresentCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageSwapchainCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindImageMemorySwapchainInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAcquireNextImageInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupPresentInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupDeviceCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceGroupSwapchainCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorUpdateTemplateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentIdFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPresentIdKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentWaitFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_HDR_METADATA_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkHdrMetadataEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPresentTimesInfoGOOGLE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportWScalingStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportSwizzleStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassInputAttachmentAspectCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSurfaceInfo2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilities2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceFormat2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayProperties2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneProperties2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayModeProperties2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneInfo2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDisplayPlaneCapabilities2KHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSharedPresentSurfaceCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice16BitStorageFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryRequirementsInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceBufferMemoryRequirements)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageMemoryRequirementsInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageSparseMemoryRequirementsInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceImageMemoryRequirements)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryRequirements2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSparseImageMemoryRequirements2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePointClippingProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryDedicatedRequirements)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryDedicatedAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewUsageCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineTessellationDomainOriginStateCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindImagePlaneMemoryInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImagePlaneMemoryRequirementsInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerYcbcrConversionImageFormatProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkTextureLODGatherFormatPropertiesAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkConditionalRenderingBeginInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkProtectedSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProtectedMemoryFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProtectedMemoryProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageToColorStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSampleLocationsInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassSampleLocationsBeginInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineSampleLocationsStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMultisamplePropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerReductionModeCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInlineUniformBlockProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetInlineUniformBlock)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageModulationStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageFormatListCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkValidationCacheCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkShaderModuleValidationCacheCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance3Properties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance4Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMaintenance4Properties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutSupport)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderFloat16Int8Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFloatControlsProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceHostQueryResetFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsObjectNameInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsObjectTagInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsLabelEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsMessengerCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDebugUtilsMessengerCallbackDataEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryReportCallbackDataEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryHostPointerInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryHostPointerPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCalibratedTimestampInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderCorePropertiesAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderCoreProperties2AMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorIndexingProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAttachmentDescription2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAttachmentReference2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassDescription2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassDependency2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreateInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_END_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassEndInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTimelineSemaphoreProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreTypeCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkTimelineSemaphoreSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreWaitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreSignalInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice8BitStorageFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicInt64Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyCheckpointPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCheckpointDataNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthStencilResolveProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassDescriptionDepthStencilResolve)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewASTCDecodeModeEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMeshShaderFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMeshShaderPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRayTracingShaderGroupCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRayTracingShaderGroupCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGeometryTrianglesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGeometryAABBNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GEOMETRY_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGeometryNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindAccelerationStructureMemoryInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetAccelerationStructureKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWriteDescriptorSetAccelerationStructureNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureMemoryRequirementsInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayQueryFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDrmFormatModifierPropertiesListEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierListCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageDrmFormatModifierPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageStencilUsageCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryOverallocationCreateInfoAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceProtectedCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryPriorityAllocateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferDeviceAddressInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferOpaqueCaptureAddressCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferDeviceAddressCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFramebufferAttachmentsCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFramebufferAttachmentImageInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassAttachmentBeginInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCooperativeMatrixPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewHandleInfoNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewAddressPropertiesNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCreationFeedbackCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceCounterKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceCounterDescriptionKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueryPoolPerformanceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAcquireProfilingLockInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceQuerySubmitInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkHeadlessSurfaceCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCoverageReductionStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFramebufferMixedSamplesCombinationNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkInitializePerformanceApiInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceMarkerInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceStreamMarkerInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceOverrideInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPerformanceConfigurationAcquireInfoINTEL)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderClockFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAttachmentReferenceStencilLayout)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAttachmentDescriptionStencilLayout)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutablePropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableStatisticKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineExecutableInternalRepresentationKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubgroupSizeControlProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceMemoryOpaqueCaptureAddressInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationLineStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan11Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan11Properties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan12Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan12Properties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan13Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVulkan13Properties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineCompilerControlCreateInfoAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceToolProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerCustomBorderColorCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryTrianglesDataKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryAabbsDataKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryInstancesDataKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureBuildGeometryInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureDeviceAddressInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureVersionInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyAccelerationStructureInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyAccelerationStructureToMemoryInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyMemoryToAccelerationStructureInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRayTracingPipelineInterfaceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineLibraryCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassTransformBeginInfoQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyCommandTransformInfoQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDeviceDiagnosticsConfigCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRobustness2FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRobustness2PropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageRobustnessFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COPY_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCopy2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_COPY_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageCopy2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_BLIT_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageBlit2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferImageCopy2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageResolve2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyBufferInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyImageInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBlitImageInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyBufferToImageInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCopyImageToBufferInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkResolveImageInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFragmentShadingRateAttachmentInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureBuildSizesInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMutableDescriptorTypeCreateInfoVALVE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVertexInputBindingDescription2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVertexInputAttributeDescription2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineColorWriteCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryBarrier2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageMemoryBarrier2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferMemoryBarrier2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DEPENDENCY_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDependencyInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferSubmitInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBMIT_INFO_2: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubmitInfo2)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyCheckpointProperties2NV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCheckpointData2NV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSynchronization2Features)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubpassResolvePerformanceQueryEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMultisampledRenderToSingleSampledInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceViewportScissorInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCuModuleCreateInfoNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCuFunctionCreateInfoNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCuLaunchInfoNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDrmPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAccelerationStructureMotionInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryGetRemoteAddressInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFormatProperties3)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDrmFormatModifierPropertiesList2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRenderingCreateInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDERING_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderingInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderingAttachmentInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDynamicRenderingFeatures)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkCommandBufferInheritanceRenderingInfo)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAttachmentSampleCountInfoAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMultiviewPerViewAttributesInfoNVX)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageViewMinLodCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkGraphicsPipelineLibraryCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetBindingReferenceVALVE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkDescriptorSetLayoutHostMappingInfoVALVE)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkShaderModuleIdentifierEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageCompressionControlEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageCompressionPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageSubresource2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSubresourceLayout2EXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreationControlEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassCreationFeedbackCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelinePropertiesIdentifierEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPipelineRobustnessCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT)); copyIndirectData(*static_cast(pCopy)); break; #if defined(VK_USE_PLATFORM_ANDROID_KHR) case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAndroidSurfaceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkNativeBufferANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSwapchainImageCreateInfoANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePresentationPropertiesANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportAndroidHardwareBufferInfoANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferUsageANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferPropertiesANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryGetAndroidHardwareBufferInfoANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkAndroidHardwareBufferFormatPropertiesANDROID)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExternalFormatANDROID)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkDirectFBSurfaceCreateInfoEXT)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkImagePipeSurfaceCreateInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryZirconHandleInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryZirconHandlePropertiesFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryGetZirconHandleInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreZirconHandleInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetZirconHandleInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryBufferCollectionFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionImageCreateInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionCreateInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionPropertiesFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferConstraintsInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSysmemColorSpaceFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageFormatConstraintsInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImageConstraintsInfoFUCHSIA)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBufferCollectionConstraintsInfoFUCHSIA)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkStreamDescriptorSurfaceCreateInfoGGP)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPresentFrameTokenGGP)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkIOSSurfaceCreateInfoMVK)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkMacOSSurfaceCreateInfoMVK)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkMetalSurfaceCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalObjectCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalObjectsInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalDeviceInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalCommandQueueInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalBufferInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMetalBufferInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalTextureInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMetalTextureInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalIOSurfaceInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMetalIOSurfaceInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMetalSharedEventInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMetalSharedEventInfoEXT)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyVideoPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoProfileListInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkPhysicalDeviceVideoFormatInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoFormatPropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoProfileInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoSessionMemoryRequirementsKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkBindVideoSessionMemoryInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoPictureResourceInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoReferenceSlotInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeUsageInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264ProfileInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264CapabilitiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264SessionParametersAddInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264SessionParametersCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264PictureInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264DpbSlotInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH264MvcInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265ProfileInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265CapabilitiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265SessionParametersAddInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265SessionParametersCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265PictureInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoDecodeH265DpbSlotInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoSessionCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoSessionParametersCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoSessionParametersUpdateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoBeginCodingInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEndCodingInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoCodingControlInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeUsageInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeRateControlInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeRateControlLayerInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeCapabilitiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264CapabilitiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264DpbSlotInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264VclFrameInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264ReferenceListsInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264EmitPictureParametersInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264ProfileInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264NaluSliceInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264RateControlInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH264RateControlLayerInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265CapabilitiesEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265VclFrameInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265EmitPictureParametersInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265NaluSliceSegmentInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265RateControlInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265RateControlLayerInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265ProfileInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265DpbSlotInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkVideoEncodeH265ReferenceListsInfoEXT)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkScreenSurfaceCreateInfoQNX)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkViSurfaceCreateInfoNN)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkWaylandSurfaceCreateInfoKHR)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkWin32SurfaceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryWin32HandleInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMemoryWin32HandleInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportMemoryWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportMemoryWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryWin32HandlePropertiesKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkMemoryGetWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportSemaphoreWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportSemaphoreWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkD3D12FenceSubmitInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSemaphoreGetWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkImportFenceWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkExportFenceWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkFenceGetWin32HandleInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceFullScreenExclusiveInfoEXT)); copyIndirectData(*static_cast(pCopy)); break; case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: pCopy = allocType(); std::memcpy(pCopy, pNext, sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkXcbSurfaceCreateInfoKHR)); copyIndirectData(*static_cast(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(); std::memcpy(pCopy, pNext, sizeof(VkXlibSurfaceCreateInfoKHR)); copyIndirectData(*static_cast(pCopy)); break; #endif // defined(VK_USE_PLATFORM_XLIB_KHR) default: break; } return pCopy; } } // namespace vk_capture #endif // VK_CAPTURE_VARIANT_WRAP_HPP_INCLUDED