blob: fe0dfaded61d8a7f0d1d300e11a0c41b6b8c3d0d [file] [log] [blame]
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See feature_requirements.py for modifications
/***************************************************************************
*
* Copyright (c) 2023-2024 The Khronos Group Inc.
* Copyright (c) 2023-2024 Valve Corporation
* Copyright (c) 2023-2024 LunarG, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
****************************************************************************/
// NOLINTBEGIN
#include "generated/feature_requirements_helper.h"
#include "generated/pnext_chain_extraction.h"
#include <vulkan/utility/vk_struct_helper.hpp>
namespace vkt {
FeatureAndName AddFeature(APIVersion api_version, vkt::Feature feature, void **inout_pnext_chain) {
switch (feature) {
case Feature::storageBuffer16BitAccess:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageBuffer16BitAccess, "VkPhysicalDeviceVulkan11Features::storageBuffer16BitAccess"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice16BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice16BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice16BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageBuffer16BitAccess, "VkPhysicalDevice16BitStorageFeatures::storageBuffer16BitAccess"};
}
case Feature::storageInputOutput16:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageInputOutput16, "VkPhysicalDeviceVulkan11Features::storageInputOutput16"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice16BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice16BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice16BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageInputOutput16, "VkPhysicalDevice16BitStorageFeatures::storageInputOutput16"};
}
case Feature::storagePushConstant16:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storagePushConstant16, "VkPhysicalDeviceVulkan11Features::storagePushConstant16"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice16BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice16BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice16BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storagePushConstant16, "VkPhysicalDevice16BitStorageFeatures::storagePushConstant16"};
}
case Feature::uniformAndStorageBuffer16BitAccess:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformAndStorageBuffer16BitAccess,
"VkPhysicalDeviceVulkan11Features::uniformAndStorageBuffer16BitAccess"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice16BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice16BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice16BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformAndStorageBuffer16BitAccess,
"VkPhysicalDevice16BitStorageFeatures::uniformAndStorageBuffer16BitAccess"};
}
case Feature::formatA4B4G4R4: {
auto vk_struct = const_cast<VkPhysicalDevice4444FormatsFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevice4444FormatsFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice4444FormatsFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->formatA4B4G4R4, "VkPhysicalDevice4444FormatsFeaturesEXT::formatA4B4G4R4"};
}
case Feature::formatA4R4G4B4: {
auto vk_struct = const_cast<VkPhysicalDevice4444FormatsFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevice4444FormatsFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice4444FormatsFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->formatA4R4G4B4, "VkPhysicalDevice4444FormatsFeaturesEXT::formatA4R4G4B4"};
}
case Feature::storageBuffer8BitAccess:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageBuffer8BitAccess, "VkPhysicalDeviceVulkan12Features::storageBuffer8BitAccess"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice8BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice8BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice8BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storageBuffer8BitAccess, "VkPhysicalDevice8BitStorageFeatures::storageBuffer8BitAccess"};
}
case Feature::storagePushConstant8:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storagePushConstant8, "VkPhysicalDeviceVulkan12Features::storagePushConstant8"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice8BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice8BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice8BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->storagePushConstant8, "VkPhysicalDevice8BitStorageFeatures::storagePushConstant8"};
}
case Feature::uniformAndStorageBuffer8BitAccess:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformAndStorageBuffer8BitAccess,
"VkPhysicalDeviceVulkan12Features::uniformAndStorageBuffer8BitAccess"};
} else {
auto vk_struct = const_cast<VkPhysicalDevice8BitStorageFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevice8BitStorageFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevice8BitStorageFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformAndStorageBuffer8BitAccess,
"VkPhysicalDevice8BitStorageFeatures::uniformAndStorageBuffer8BitAccess"};
}
case Feature::decodeModeSharedExponent: {
auto vk_struct = const_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceASTCDecodeFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceASTCDecodeFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->decodeModeSharedExponent, "VkPhysicalDeviceASTCDecodeFeaturesEXT::decodeModeSharedExponent"};
}
case Feature::accelerationStructure: {
auto vk_struct = const_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAccelerationStructureFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->accelerationStructure, "VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructure"};
}
case Feature::accelerationStructureCaptureReplay: {
auto vk_struct = const_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAccelerationStructureFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->accelerationStructureCaptureReplay,
"VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay"};
}
case Feature::accelerationStructureHostCommands: {
auto vk_struct = const_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAccelerationStructureFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->accelerationStructureHostCommands,
"VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands"};
}
case Feature::accelerationStructureIndirectBuild: {
auto vk_struct = const_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAccelerationStructureFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->accelerationStructureIndirectBuild,
"VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild"};
}
case Feature::descriptorBindingAccelerationStructureUpdateAfterBind: {
auto vk_struct = const_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAccelerationStructureFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingAccelerationStructureUpdateAfterBind,
"VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind"};
}
case Feature::reportAddressBinding: {
auto vk_struct = const_cast<VkPhysicalDeviceAddressBindingReportFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAddressBindingReportFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAddressBindingReportFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->reportAddressBinding, "VkPhysicalDeviceAddressBindingReportFeaturesEXT::reportAddressBinding"};
}
case Feature::amigoProfiling: {
auto vk_struct = const_cast<VkPhysicalDeviceAmigoProfilingFeaturesSEC *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAmigoProfilingFeaturesSEC>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAmigoProfilingFeaturesSEC;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->amigoProfiling, "VkPhysicalDeviceAmigoProfilingFeaturesSEC::amigoProfiling"};
}
case Feature::attachmentFeedbackLoopDynamicState: {
auto vk_struct = const_cast<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->attachmentFeedbackLoopDynamicState,
"VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT::attachmentFeedbackLoopDynamicState"};
}
case Feature::attachmentFeedbackLoopLayout: {
auto vk_struct = const_cast<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->attachmentFeedbackLoopLayout,
"VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT::attachmentFeedbackLoopLayout"};
}
case Feature::advancedBlendCoherentOperations: {
auto vk_struct = const_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->advancedBlendCoherentOperations,
"VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT::advancedBlendCoherentOperations"};
}
case Feature::borderColorSwizzle: {
auto vk_struct = const_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->borderColorSwizzle, "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT::borderColorSwizzle"};
}
case Feature::borderColorSwizzleFromImage: {
auto vk_struct = const_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->borderColorSwizzleFromImage,
"VkPhysicalDeviceBorderColorSwizzleFeaturesEXT::borderColorSwizzleFromImage"};
}
case Feature::bufferDeviceAddress:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddress, "VkPhysicalDeviceVulkan12Features::bufferDeviceAddress"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBufferDeviceAddressFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBufferDeviceAddressFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddress, "VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress"};
}
case Feature::bufferDeviceAddressCaptureReplay:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddressCaptureReplay,
"VkPhysicalDeviceVulkan12Features::bufferDeviceAddressCaptureReplay"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBufferDeviceAddressFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBufferDeviceAddressFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddressCaptureReplay,
"VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressCaptureReplay"};
}
case Feature::bufferDeviceAddressMultiDevice:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddressMultiDevice,
"VkPhysicalDeviceVulkan12Features::bufferDeviceAddressMultiDevice"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceBufferDeviceAddressFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceBufferDeviceAddressFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceBufferDeviceAddressFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bufferDeviceAddressMultiDevice,
"VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddressMultiDevice"};
}
case Feature::clustercullingShader: {
auto vk_struct = const_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>(
vku::FindStructInPNextChain<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->clustercullingShader, "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI::clustercullingShader"};
}
case Feature::multiviewClusterCullingShader: {
auto vk_struct = const_cast<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI *>(
vku::FindStructInPNextChain<VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewClusterCullingShader,
"VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI::multiviewClusterCullingShader"};
}
case Feature::deviceCoherentMemory: {
auto vk_struct = const_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCoherentMemoryFeaturesAMD;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceCoherentMemory, "VkPhysicalDeviceCoherentMemoryFeaturesAMD::deviceCoherentMemory"};
}
case Feature::colorWriteEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceColorWriteEnableFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->colorWriteEnable, "VkPhysicalDeviceColorWriteEnableFeaturesEXT::colorWriteEnable"};
}
case Feature::computeDerivativeGroupLinear: {
auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->computeDerivativeGroupLinear,
"VkPhysicalDeviceComputeShaderDerivativesFeaturesNV::computeDerivativeGroupLinear"};
}
case Feature::computeDerivativeGroupQuads: {
auto vk_struct = const_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->computeDerivativeGroupQuads,
"VkPhysicalDeviceComputeShaderDerivativesFeaturesNV::computeDerivativeGroupQuads"};
}
case Feature::conditionalRendering: {
auto vk_struct = const_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceConditionalRenderingFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->conditionalRendering, "VkPhysicalDeviceConditionalRenderingFeaturesEXT::conditionalRendering"};
}
case Feature::inheritedConditionalRendering: {
auto vk_struct = const_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceConditionalRenderingFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->inheritedConditionalRendering,
"VkPhysicalDeviceConditionalRenderingFeaturesEXT::inheritedConditionalRendering"};
}
case Feature::cooperativeMatrix: {
auto vk_struct = const_cast<VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCooperativeMatrixFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->cooperativeMatrix, "VkPhysicalDeviceCooperativeMatrixFeaturesKHR::cooperativeMatrix"};
}
case Feature::cooperativeMatrixRobustBufferAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceCooperativeMatrixFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCooperativeMatrixFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->cooperativeMatrixRobustBufferAccess,
"VkPhysicalDeviceCooperativeMatrixFeaturesKHR::cooperativeMatrixRobustBufferAccess"};
}
case Feature::indirectCopy: {
auto vk_struct = const_cast<VkPhysicalDeviceCopyMemoryIndirectFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCopyMemoryIndirectFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->indirectCopy, "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV::indirectCopy"};
}
case Feature::cornerSampledImage: {
auto vk_struct = const_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCornerSampledImageFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCornerSampledImageFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->cornerSampledImage, "VkPhysicalDeviceCornerSampledImageFeaturesNV::cornerSampledImage"};
}
case Feature::coverageReductionMode: {
auto vk_struct = const_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCoverageReductionModeFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->coverageReductionMode, "VkPhysicalDeviceCoverageReductionModeFeaturesNV::coverageReductionMode"};
}
case Feature::cubicRangeClamp: {
auto vk_struct = const_cast<VkPhysicalDeviceCubicClampFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCubicClampFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCubicClampFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->cubicRangeClamp, "VkPhysicalDeviceCubicClampFeaturesQCOM::cubicRangeClamp"};
}
case Feature::selectableCubicWeights: {
auto vk_struct = const_cast<VkPhysicalDeviceCubicWeightsFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCubicWeightsFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCubicWeightsFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->selectableCubicWeights, "VkPhysicalDeviceCubicWeightsFeaturesQCOM::selectableCubicWeights"};
}
case Feature::cudaKernelLaunchFeatures: {
auto vk_struct = const_cast<VkPhysicalDeviceCudaKernelLaunchFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCudaKernelLaunchFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->cudaKernelLaunchFeatures, "VkPhysicalDeviceCudaKernelLaunchFeaturesNV::cudaKernelLaunchFeatures"};
}
case Feature::customBorderColorWithoutFormat: {
auto vk_struct = const_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCustomBorderColorFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->customBorderColorWithoutFormat,
"VkPhysicalDeviceCustomBorderColorFeaturesEXT::customBorderColorWithoutFormat"};
}
case Feature::customBorderColors: {
auto vk_struct = const_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceCustomBorderColorFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->customBorderColors, "VkPhysicalDeviceCustomBorderColorFeaturesEXT::customBorderColors"};
}
case Feature::dedicatedAllocationImageAliasing: {
auto vk_struct = const_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dedicatedAllocationImageAliasing,
"VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV::dedicatedAllocationImageAliasing"};
}
case Feature::depthBiasControl: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthBiasControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthBiasControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->depthBiasControl, "VkPhysicalDeviceDepthBiasControlFeaturesEXT::depthBiasControl"};
}
case Feature::depthBiasExact: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthBiasControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthBiasControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->depthBiasExact, "VkPhysicalDeviceDepthBiasControlFeaturesEXT::depthBiasExact"};
}
case Feature::floatRepresentation: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthBiasControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthBiasControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->floatRepresentation, "VkPhysicalDeviceDepthBiasControlFeaturesEXT::floatRepresentation"};
}
case Feature::leastRepresentableValueForceUnormRepresentation: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthBiasControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthBiasControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthBiasControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->leastRepresentableValueForceUnormRepresentation,
"VkPhysicalDeviceDepthBiasControlFeaturesEXT::leastRepresentableValueForceUnormRepresentation"};
}
case Feature::depthClampZeroOne: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthClampZeroOneFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->depthClampZeroOne, "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT::depthClampZeroOne"};
}
case Feature::depthClipControl: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthClipControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthClipControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthClipControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->depthClipControl, "VkPhysicalDeviceDepthClipControlFeaturesEXT::depthClipControl"};
}
case Feature::depthClipEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDepthClipEnableFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->depthClipEnable, "VkPhysicalDeviceDepthClipEnableFeaturesEXT::depthClipEnable"};
}
case Feature::descriptorBuffer: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBuffer, "VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBuffer"};
}
case Feature::descriptorBufferCaptureReplay: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBufferCaptureReplay,
"VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBufferCaptureReplay"};
}
case Feature::descriptorBufferImageLayoutIgnored: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBufferImageLayoutIgnored,
"VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBufferImageLayoutIgnored"};
}
case Feature::descriptorBufferPushDescriptors: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBufferPushDescriptors,
"VkPhysicalDeviceDescriptorBufferFeaturesEXT::descriptorBufferPushDescriptors"};
}
case Feature::descriptorBindingPartiallyBound:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingPartiallyBound,
"VkPhysicalDeviceVulkan12Features::descriptorBindingPartiallyBound"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingPartiallyBound,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound"};
}
case Feature::descriptorBindingSampledImageUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingSampledImageUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingSampledImageUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingSampledImageUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind"};
}
case Feature::descriptorBindingStorageBufferUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageBufferUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingStorageBufferUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageBufferUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind"};
}
case Feature::descriptorBindingStorageImageUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageImageUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingStorageImageUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageImageUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind"};
}
case Feature::descriptorBindingStorageTexelBufferUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageTexelBufferUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingStorageTexelBufferUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingStorageTexelBufferUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind"};
}
case Feature::descriptorBindingUniformBufferUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUniformBufferUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingUniformBufferUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUniformBufferUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind"};
}
case Feature::descriptorBindingUniformTexelBufferUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUniformTexelBufferUpdateAfterBind,
"VkPhysicalDeviceVulkan12Features::descriptorBindingUniformTexelBufferUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUniformTexelBufferUpdateAfterBind,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind"};
}
case Feature::descriptorBindingUpdateUnusedWhilePending:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUpdateUnusedWhilePending,
"VkPhysicalDeviceVulkan12Features::descriptorBindingUpdateUnusedWhilePending"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingUpdateUnusedWhilePending,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending"};
}
case Feature::descriptorBindingVariableDescriptorCount:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingVariableDescriptorCount,
"VkPhysicalDeviceVulkan12Features::descriptorBindingVariableDescriptorCount"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingVariableDescriptorCount,
"VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount"};
}
case Feature::runtimeDescriptorArray:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->runtimeDescriptorArray, "VkPhysicalDeviceVulkan12Features::runtimeDescriptorArray"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->runtimeDescriptorArray, "VkPhysicalDeviceDescriptorIndexingFeatures::runtimeDescriptorArray"};
}
case Feature::shaderInputAttachmentArrayDynamicIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInputAttachmentArrayDynamicIndexing,
"VkPhysicalDeviceVulkan12Features::shaderInputAttachmentArrayDynamicIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInputAttachmentArrayDynamicIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderInputAttachmentArrayDynamicIndexing"};
}
case Feature::shaderInputAttachmentArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInputAttachmentArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderInputAttachmentArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInputAttachmentArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderInputAttachmentArrayNonUniformIndexing"};
}
case Feature::shaderSampledImageArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSampledImageArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderSampledImageArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSampledImageArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderSampledImageArrayNonUniformIndexing"};
}
case Feature::shaderStorageBufferArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageBufferArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderStorageBufferArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageBufferArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderStorageBufferArrayNonUniformIndexing"};
}
case Feature::shaderStorageImageArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageImageArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderStorageImageArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageImageArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderStorageImageArrayNonUniformIndexing"};
}
case Feature::shaderStorageTexelBufferArrayDynamicIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageTexelBufferArrayDynamicIndexing,
"VkPhysicalDeviceVulkan12Features::shaderStorageTexelBufferArrayDynamicIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageTexelBufferArrayDynamicIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderStorageTexelBufferArrayDynamicIndexing"};
}
case Feature::shaderStorageTexelBufferArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageTexelBufferArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderStorageTexelBufferArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderStorageTexelBufferArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderStorageTexelBufferArrayNonUniformIndexing"};
}
case Feature::shaderUniformBufferArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformBufferArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderUniformBufferArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformBufferArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderUniformBufferArrayNonUniformIndexing"};
}
case Feature::shaderUniformTexelBufferArrayDynamicIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformTexelBufferArrayDynamicIndexing,
"VkPhysicalDeviceVulkan12Features::shaderUniformTexelBufferArrayDynamicIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformTexelBufferArrayDynamicIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderUniformTexelBufferArrayDynamicIndexing"};
}
case Feature::shaderUniformTexelBufferArrayNonUniformIndexing:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformTexelBufferArrayNonUniformIndexing,
"VkPhysicalDeviceVulkan12Features::shaderUniformTexelBufferArrayNonUniformIndexing"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorIndexingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorIndexingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorIndexingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderUniformTexelBufferArrayNonUniformIndexing,
"VkPhysicalDeviceDescriptorIndexingFeatures::shaderUniformTexelBufferArrayNonUniformIndexing"};
}
case Feature::descriptorPoolOverallocation: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorPoolOverallocation,
"VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV::descriptorPoolOverallocation"};
}
case Feature::descriptorSetHostMapping: {
auto vk_struct = const_cast<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorSetHostMapping,
"VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE::descriptorSetHostMapping"};
}
case Feature::deviceGeneratedCompute: {
auto vk_struct = const_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceGeneratedCompute,
"VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedCompute"};
}
case Feature::deviceGeneratedComputeCaptureReplay: {
auto vk_struct = const_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceGeneratedComputeCaptureReplay,
"VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputeCaptureReplay"};
}
case Feature::deviceGeneratedComputePipelines: {
auto vk_struct = const_cast<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceGeneratedComputePipelines,
"VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV::deviceGeneratedComputePipelines"};
}
case Feature::deviceGeneratedCommands: {
auto vk_struct = const_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceGeneratedCommands,
"VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands"};
}
case Feature::deviceMemoryReport: {
auto vk_struct = const_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceMemoryReport, "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT::deviceMemoryReport"};
}
case Feature::diagnosticsConfig: {
auto vk_struct = const_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->diagnosticsConfig, "VkPhysicalDeviceDiagnosticsConfigFeaturesNV::diagnosticsConfig"};
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::displacementMicromap: {
auto vk_struct = const_cast<VkPhysicalDeviceDisplacementMicromapFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDisplacementMicromapFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDisplacementMicromapFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->displacementMicromap, "VkPhysicalDeviceDisplacementMicromapFeaturesNV::displacementMicromap"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
case Feature::dynamicRendering:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dynamicRendering, "VkPhysicalDeviceVulkan13Features::dynamicRendering"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceDynamicRenderingFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDynamicRenderingFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDynamicRenderingFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dynamicRendering, "VkPhysicalDeviceDynamicRenderingFeatures::dynamicRendering"};
}
case Feature::dynamicRenderingLocalRead: {
auto vk_struct = const_cast<VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dynamicRenderingLocalRead,
"VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR::dynamicRenderingLocalRead"};
}
case Feature::dynamicRenderingUnusedAttachments: {
auto vk_struct = const_cast<VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dynamicRenderingUnusedAttachments,
"VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT::dynamicRenderingUnusedAttachments"};
}
case Feature::exclusiveScissor: {
auto vk_struct = const_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExclusiveScissorFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExclusiveScissorFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->exclusiveScissor, "VkPhysicalDeviceExclusiveScissorFeaturesNV::exclusiveScissor"};
}
case Feature::extendedDynamicState2: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState2, "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT::extendedDynamicState2"};
}
case Feature::extendedDynamicState2LogicOp: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState2LogicOp,
"VkPhysicalDeviceExtendedDynamicState2FeaturesEXT::extendedDynamicState2LogicOp"};
}
case Feature::extendedDynamicState2PatchControlPoints: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState2PatchControlPoints,
"VkPhysicalDeviceExtendedDynamicState2FeaturesEXT::extendedDynamicState2PatchControlPoints"};
}
case Feature::extendedDynamicState3AlphaToCoverageEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3AlphaToCoverageEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToCoverageEnable"};
}
case Feature::extendedDynamicState3AlphaToOneEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3AlphaToOneEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3AlphaToOneEnable"};
}
case Feature::extendedDynamicState3ColorBlendAdvanced: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ColorBlendAdvanced,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ColorBlendAdvanced"};
}
case Feature::extendedDynamicState3ColorBlendEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ColorBlendEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ColorBlendEnable"};
}
case Feature::extendedDynamicState3ColorBlendEquation: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ColorBlendEquation,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ColorBlendEquation"};
}
case Feature::extendedDynamicState3ColorWriteMask: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ColorWriteMask,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ColorWriteMask"};
}
case Feature::extendedDynamicState3ConservativeRasterizationMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ConservativeRasterizationMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ConservativeRasterizationMode"};
}
case Feature::extendedDynamicState3CoverageModulationMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageModulationMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageModulationMode"};
}
case Feature::extendedDynamicState3CoverageModulationTable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageModulationTable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageModulationTable"};
}
case Feature::extendedDynamicState3CoverageModulationTableEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageModulationTableEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageModulationTableEnable"};
}
case Feature::extendedDynamicState3CoverageReductionMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageReductionMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageReductionMode"};
}
case Feature::extendedDynamicState3CoverageToColorEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageToColorEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageToColorEnable"};
}
case Feature::extendedDynamicState3CoverageToColorLocation: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3CoverageToColorLocation,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3CoverageToColorLocation"};
}
case Feature::extendedDynamicState3DepthClampEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3DepthClampEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClampEnable"};
}
case Feature::extendedDynamicState3DepthClipEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3DepthClipEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClipEnable"};
}
case Feature::extendedDynamicState3DepthClipNegativeOneToOne: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3DepthClipNegativeOneToOne,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3DepthClipNegativeOneToOne"};
}
case Feature::extendedDynamicState3ExtraPrimitiveOverestimationSize: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ExtraPrimitiveOverestimationSize,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ExtraPrimitiveOverestimationSize"};
}
case Feature::extendedDynamicState3LineRasterizationMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3LineRasterizationMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LineRasterizationMode"};
}
case Feature::extendedDynamicState3LineStippleEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3LineStippleEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LineStippleEnable"};
}
case Feature::extendedDynamicState3LogicOpEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3LogicOpEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3LogicOpEnable"};
}
case Feature::extendedDynamicState3PolygonMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3PolygonMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3PolygonMode"};
}
case Feature::extendedDynamicState3ProvokingVertexMode: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ProvokingVertexMode,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ProvokingVertexMode"};
}
case Feature::extendedDynamicState3RasterizationSamples: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3RasterizationSamples,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3RasterizationSamples"};
}
case Feature::extendedDynamicState3RasterizationStream: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3RasterizationStream,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3RasterizationStream"};
}
case Feature::extendedDynamicState3RepresentativeFragmentTestEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3RepresentativeFragmentTestEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3RepresentativeFragmentTestEnable"};
}
case Feature::extendedDynamicState3SampleLocationsEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3SampleLocationsEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3SampleLocationsEnable"};
}
case Feature::extendedDynamicState3SampleMask: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3SampleMask,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3SampleMask"};
}
case Feature::extendedDynamicState3ShadingRateImageEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ShadingRateImageEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ShadingRateImageEnable"};
}
case Feature::extendedDynamicState3TessellationDomainOrigin: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3TessellationDomainOrigin,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3TessellationDomainOrigin"};
}
case Feature::extendedDynamicState3ViewportSwizzle: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ViewportSwizzle,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ViewportSwizzle"};
}
case Feature::extendedDynamicState3ViewportWScalingEnable: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicState3FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState3ViewportWScalingEnable,
"VkPhysicalDeviceExtendedDynamicState3FeaturesEXT::extendedDynamicState3ViewportWScalingEnable"};
}
case Feature::extendedDynamicState: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedDynamicState, "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT::extendedDynamicState"};
}
case Feature::extendedSparseAddressSpace: {
auto vk_struct = const_cast<VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->extendedSparseAddressSpace,
"VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV::extendedSparseAddressSpace"};
}
#ifdef VK_USE_PLATFORM_ANDROID_KHR
case Feature::externalFormatResolve: {
auto vk_struct = const_cast<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExternalFormatResolveFeaturesANDROID>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->externalFormatResolve,
"VkPhysicalDeviceExternalFormatResolveFeaturesANDROID::externalFormatResolve"};
}
#endif // VK_USE_PLATFORM_ANDROID_KHR
case Feature::externalMemoryRDMA: {
auto vk_struct = const_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->externalMemoryRDMA, "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV::externalMemoryRDMA"};
}
#ifdef VK_USE_PLATFORM_SCREEN_QNX
case Feature::screenBufferImport: {
auto vk_struct = const_cast<VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX *>(
vku::FindStructInPNextChain<VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->screenBufferImport, "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX::screenBufferImport"};
}
#endif // VK_USE_PLATFORM_SCREEN_QNX
case Feature::deviceFault: {
auto vk_struct = const_cast<VkPhysicalDeviceFaultFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFaultFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFaultFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceFault, "VkPhysicalDeviceFaultFeaturesEXT::deviceFault"};
}
case Feature::deviceFaultVendorBinary: {
auto vk_struct = const_cast<VkPhysicalDeviceFaultFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFaultFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFaultFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->deviceFaultVendorBinary, "VkPhysicalDeviceFaultFeaturesEXT::deviceFaultVendorBinary"};
}
case Feature::fragmentDensityMapDeferred: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentDensityMapDeferred,
"VkPhysicalDeviceFragmentDensityMap2FeaturesEXT::fragmentDensityMapDeferred"};
}
case Feature::fragmentDensityMap: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentDensityMap, "VkPhysicalDeviceFragmentDensityMapFeaturesEXT::fragmentDensityMap"};
}
case Feature::fragmentDensityMapDynamic: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentDensityMapDynamic,
"VkPhysicalDeviceFragmentDensityMapFeaturesEXT::fragmentDensityMapDynamic"};
}
case Feature::fragmentDensityMapNonSubsampledImages: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentDensityMapNonSubsampledImages,
"VkPhysicalDeviceFragmentDensityMapFeaturesEXT::fragmentDensityMapNonSubsampledImages"};
}
case Feature::fragmentDensityMapOffset: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentDensityMapOffset,
"VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM::fragmentDensityMapOffset"};
}
case Feature::fragmentShaderBarycentric: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentShaderBarycentric,
"VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR::fragmentShaderBarycentric"};
}
case Feature::fragmentShaderPixelInterlock: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentShaderPixelInterlock,
"VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT::fragmentShaderPixelInterlock"};
}
case Feature::fragmentShaderSampleInterlock: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentShaderSampleInterlock,
"VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT::fragmentShaderSampleInterlock"};
}
case Feature::fragmentShaderShadingRateInterlock: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentShaderShadingRateInterlock,
"VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT::fragmentShaderShadingRateInterlock"};
}
case Feature::fragmentShadingRateEnums: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->fragmentShadingRateEnums,
"VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV::fragmentShadingRateEnums"};
}
case Feature::noInvocationFragmentShadingRates: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->noInvocationFragmentShadingRates,
"VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV::noInvocationFragmentShadingRates"};
}
case Feature::supersampleFragmentShadingRates: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->supersampleFragmentShadingRates,
"VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV::supersampleFragmentShadingRates"};
}
case Feature::attachmentFragmentShadingRate: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->attachmentFragmentShadingRate,
"VkPhysicalDeviceFragmentShadingRateFeaturesKHR::attachmentFragmentShadingRate"};
}
case Feature::pipelineFragmentShadingRate: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineFragmentShadingRate,
"VkPhysicalDeviceFragmentShadingRateFeaturesKHR::pipelineFragmentShadingRate"};
}
case Feature::primitiveFragmentShadingRate: {
auto vk_struct = const_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitiveFragmentShadingRate,
"VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate"};
}
case Feature::frameBoundary: {
auto vk_struct = const_cast<VkPhysicalDeviceFrameBoundaryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceFrameBoundaryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceFrameBoundaryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->frameBoundary, "VkPhysicalDeviceFrameBoundaryFeaturesEXT::frameBoundary"};
}
case Feature::globalPriorityQuery: {
auto vk_struct = const_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->globalPriorityQuery, "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR::globalPriorityQuery"};
}
case Feature::graphicsPipelineLibrary: {
auto vk_struct = const_cast<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->graphicsPipelineLibrary,
"VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT::graphicsPipelineLibrary"};
}
case Feature::hostImageCopy: {
auto vk_struct = const_cast<VkPhysicalDeviceHostImageCopyFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceHostImageCopyFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceHostImageCopyFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->hostImageCopy, "VkPhysicalDeviceHostImageCopyFeaturesEXT::hostImageCopy"};
}
case Feature::hostQueryReset:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->hostQueryReset, "VkPhysicalDeviceVulkan12Features::hostQueryReset"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceHostQueryResetFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceHostQueryResetFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceHostQueryResetFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->hostQueryReset, "VkPhysicalDeviceHostQueryResetFeatures::hostQueryReset"};
}
case Feature::image2DViewOf3D: {
auto vk_struct = const_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->image2DViewOf3D, "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT::image2DViewOf3D"};
}
case Feature::sampler2DViewOf3D: {
auto vk_struct = const_cast<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->sampler2DViewOf3D, "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT::sampler2DViewOf3D"};
}
case Feature::imageCompressionControl: {
auto vk_struct = const_cast<VkPhysicalDeviceImageCompressionControlFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageCompressionControlFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageCompressionControlFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageCompressionControl,
"VkPhysicalDeviceImageCompressionControlFeaturesEXT::imageCompressionControl"};
}
case Feature::imageCompressionControlSwapchain: {
auto vk_struct = const_cast<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageCompressionControlSwapchain,
"VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT::imageCompressionControlSwapchain"};
}
case Feature::textureBlockMatch2: {
auto vk_struct = const_cast<VkPhysicalDeviceImageProcessing2FeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageProcessing2FeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageProcessing2FeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureBlockMatch2, "VkPhysicalDeviceImageProcessing2FeaturesQCOM::textureBlockMatch2"};
}
case Feature::textureBlockMatch: {
auto vk_struct = const_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageProcessingFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageProcessingFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureBlockMatch, "VkPhysicalDeviceImageProcessingFeaturesQCOM::textureBlockMatch"};
}
case Feature::textureBoxFilter: {
auto vk_struct = const_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageProcessingFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageProcessingFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureBoxFilter, "VkPhysicalDeviceImageProcessingFeaturesQCOM::textureBoxFilter"};
}
case Feature::textureSampleWeighted: {
auto vk_struct = const_cast<VkPhysicalDeviceImageProcessingFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageProcessingFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageProcessingFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureSampleWeighted, "VkPhysicalDeviceImageProcessingFeaturesQCOM::textureSampleWeighted"};
}
case Feature::robustImageAccess:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->robustImageAccess, "VkPhysicalDeviceVulkan13Features::robustImageAccess"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceImageRobustnessFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageRobustnessFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageRobustnessFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->robustImageAccess, "VkPhysicalDeviceImageRobustnessFeatures::robustImageAccess"};
}
case Feature::imageSlicedViewOf3D: {
auto vk_struct = const_cast<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageSlicedViewOf3D, "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT::imageSlicedViewOf3D"};
}
case Feature::minLod: {
auto vk_struct = const_cast<VkPhysicalDeviceImageViewMinLodFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImageViewMinLodFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImageViewMinLodFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->minLod, "VkPhysicalDeviceImageViewMinLodFeaturesEXT::minLod"};
}
case Feature::imagelessFramebuffer:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imagelessFramebuffer, "VkPhysicalDeviceVulkan12Features::imagelessFramebuffer"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceImagelessFramebufferFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceImagelessFramebufferFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceImagelessFramebufferFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imagelessFramebuffer, "VkPhysicalDeviceImagelessFramebufferFeatures::imagelessFramebuffer"};
}
case Feature::indexTypeUint8: {
auto vk_struct = const_cast<VkPhysicalDeviceIndexTypeUint8FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceIndexTypeUint8FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->indexTypeUint8, "VkPhysicalDeviceIndexTypeUint8FeaturesKHR::indexTypeUint8"};
}
case Feature::inheritedViewportScissor2D: {
auto vk_struct = const_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->inheritedViewportScissor2D,
"VkPhysicalDeviceInheritedViewportScissorFeaturesNV::inheritedViewportScissor2D"};
}
case Feature::descriptorBindingInlineUniformBlockUpdateAfterBind:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingInlineUniformBlockUpdateAfterBind,
"VkPhysicalDeviceVulkan13Features::descriptorBindingInlineUniformBlockUpdateAfterBind"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceInlineUniformBlockFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceInlineUniformBlockFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceInlineUniformBlockFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorBindingInlineUniformBlockUpdateAfterBind,
"VkPhysicalDeviceInlineUniformBlockFeatures::descriptorBindingInlineUniformBlockUpdateAfterBind"};
}
case Feature::inlineUniformBlock:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->inlineUniformBlock, "VkPhysicalDeviceVulkan13Features::inlineUniformBlock"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceInlineUniformBlockFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceInlineUniformBlockFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceInlineUniformBlockFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->inlineUniformBlock, "VkPhysicalDeviceInlineUniformBlockFeatures::inlineUniformBlock"};
}
case Feature::invocationMask: {
auto vk_struct = const_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI *>(
vku::FindStructInPNextChain<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->invocationMask, "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI::invocationMask"};
}
case Feature::legacyDithering: {
auto vk_struct = const_cast<VkPhysicalDeviceLegacyDitheringFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLegacyDitheringFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLegacyDitheringFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->legacyDithering, "VkPhysicalDeviceLegacyDitheringFeaturesEXT::legacyDithering"};
}
case Feature::legacyVertexAttributes: {
auto vk_struct = const_cast<VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->legacyVertexAttributes,
"VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT::legacyVertexAttributes"};
}
case Feature::bresenhamLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->bresenhamLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::bresenhamLines"};
}
case Feature::rectangularLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rectangularLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::rectangularLines"};
}
case Feature::smoothLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->smoothLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::smoothLines"};
}
case Feature::stippledBresenhamLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->stippledBresenhamLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::stippledBresenhamLines"};
}
case Feature::stippledRectangularLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->stippledRectangularLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::stippledRectangularLines"};
}
case Feature::stippledSmoothLines: {
auto vk_struct = const_cast<VkPhysicalDeviceLineRasterizationFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLineRasterizationFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLineRasterizationFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->stippledSmoothLines, "VkPhysicalDeviceLineRasterizationFeaturesKHR::stippledSmoothLines"};
}
case Feature::linearColorAttachment: {
auto vk_struct = const_cast<VkPhysicalDeviceLinearColorAttachmentFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->linearColorAttachment, "VkPhysicalDeviceLinearColorAttachmentFeaturesNV::linearColorAttachment"};
}
case Feature::maintenance4:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->maintenance4, "VkPhysicalDeviceVulkan13Features::maintenance4"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceMaintenance4Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMaintenance4Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMaintenance4Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->maintenance4, "VkPhysicalDeviceMaintenance4Features::maintenance4"};
}
case Feature::maintenance5: {
auto vk_struct = const_cast<VkPhysicalDeviceMaintenance5FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMaintenance5FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMaintenance5FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->maintenance5, "VkPhysicalDeviceMaintenance5FeaturesKHR::maintenance5"};
}
case Feature::maintenance6: {
auto vk_struct = const_cast<VkPhysicalDeviceMaintenance6FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMaintenance6FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMaintenance6FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->maintenance6, "VkPhysicalDeviceMaintenance6FeaturesKHR::maintenance6"};
}
case Feature::memoryMapPlaced: {
auto vk_struct = const_cast<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->memoryMapPlaced, "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT::memoryMapPlaced"};
}
case Feature::memoryMapRangePlaced: {
auto vk_struct = const_cast<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->memoryMapRangePlaced, "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT::memoryMapRangePlaced"};
}
case Feature::memoryUnmapReserve: {
auto vk_struct = const_cast<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMapMemoryPlacedFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->memoryUnmapReserve, "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT::memoryUnmapReserve"};
}
case Feature::memoryDecompression: {
auto vk_struct = const_cast<VkPhysicalDeviceMemoryDecompressionFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMemoryDecompressionFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMemoryDecompressionFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->memoryDecompression, "VkPhysicalDeviceMemoryDecompressionFeaturesNV::memoryDecompression"};
}
case Feature::memoryPriority: {
auto vk_struct = const_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMemoryPriorityFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->memoryPriority, "VkPhysicalDeviceMemoryPriorityFeaturesEXT::memoryPriority"};
}
case Feature::meshShaderQueries: {
auto vk_struct = const_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMeshShaderFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMeshShaderFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->meshShaderQueries, "VkPhysicalDeviceMeshShaderFeaturesEXT::meshShaderQueries"};
}
case Feature::multiviewMeshShader: {
auto vk_struct = const_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMeshShaderFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMeshShaderFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewMeshShader, "VkPhysicalDeviceMeshShaderFeaturesEXT::multiviewMeshShader"};
}
case Feature::primitiveFragmentShadingRateMeshShader: {
auto vk_struct = const_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMeshShaderFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMeshShaderFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitiveFragmentShadingRateMeshShader,
"VkPhysicalDeviceMeshShaderFeaturesEXT::primitiveFragmentShadingRateMeshShader"};
}
case Feature::meshShader: {
auto vk_struct = const_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMeshShaderFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMeshShaderFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->meshShader, "VkPhysicalDeviceMeshShaderFeaturesEXT::meshShader"};
}
case Feature::taskShader: {
auto vk_struct = const_cast<VkPhysicalDeviceMeshShaderFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMeshShaderFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMeshShaderFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->taskShader, "VkPhysicalDeviceMeshShaderFeaturesEXT::taskShader"};
}
case Feature::multiDraw: {
auto vk_struct = const_cast<VkPhysicalDeviceMultiDrawFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiDrawFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiDrawFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiDraw, "VkPhysicalDeviceMultiDrawFeaturesEXT::multiDraw"};
}
case Feature::multisampledRenderToSingleSampled: {
auto vk_struct = const_cast<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multisampledRenderToSingleSampled,
"VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT::multisampledRenderToSingleSampled"};
}
case Feature::multiview:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiview, "VkPhysicalDeviceVulkan11Features::multiview"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceMultiviewFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiviewFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiviewFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiview, "VkPhysicalDeviceMultiviewFeatures::multiview"};
}
case Feature::multiviewGeometryShader:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewGeometryShader, "VkPhysicalDeviceVulkan11Features::multiviewGeometryShader"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceMultiviewFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiviewFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiviewFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewGeometryShader, "VkPhysicalDeviceMultiviewFeatures::multiviewGeometryShader"};
}
case Feature::multiviewTessellationShader:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewTessellationShader, "VkPhysicalDeviceVulkan11Features::multiviewTessellationShader"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceMultiviewFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiviewFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiviewFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewTessellationShader, "VkPhysicalDeviceMultiviewFeatures::multiviewTessellationShader"};
}
case Feature::multiviewPerViewRenderAreas: {
auto vk_struct = const_cast<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewPerViewRenderAreas,
"VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM::multiviewPerViewRenderAreas"};
}
case Feature::multiviewPerViewViewports: {
auto vk_struct = const_cast<VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multiviewPerViewViewports,
"VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM::multiviewPerViewViewports"};
}
case Feature::mutableDescriptorType: {
auto vk_struct = const_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->mutableDescriptorType, "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType"};
}
case Feature::nestedCommandBuffer: {
auto vk_struct = const_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceNestedCommandBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->nestedCommandBuffer, "VkPhysicalDeviceNestedCommandBufferFeaturesEXT::nestedCommandBuffer"};
}
case Feature::nestedCommandBufferRendering: {
auto vk_struct = const_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceNestedCommandBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->nestedCommandBufferRendering,
"VkPhysicalDeviceNestedCommandBufferFeaturesEXT::nestedCommandBufferRendering"};
}
case Feature::nestedCommandBufferSimultaneousUse: {
auto vk_struct = const_cast<VkPhysicalDeviceNestedCommandBufferFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceNestedCommandBufferFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->nestedCommandBufferSimultaneousUse,
"VkPhysicalDeviceNestedCommandBufferFeaturesEXT::nestedCommandBufferSimultaneousUse"};
}
case Feature::nonSeamlessCubeMap: {
auto vk_struct = const_cast<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->nonSeamlessCubeMap, "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT::nonSeamlessCubeMap"};
}
case Feature::micromap: {
auto vk_struct = const_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceOpacityMicromapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceOpacityMicromapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->micromap, "VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromap"};
}
case Feature::micromapCaptureReplay: {
auto vk_struct = const_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceOpacityMicromapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceOpacityMicromapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->micromapCaptureReplay, "VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay"};
}
case Feature::micromapHostCommands: {
auto vk_struct = const_cast<VkPhysicalDeviceOpacityMicromapFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceOpacityMicromapFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceOpacityMicromapFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->micromapHostCommands, "VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands"};
}
case Feature::opticalFlow: {
auto vk_struct = const_cast<VkPhysicalDeviceOpticalFlowFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceOpticalFlowFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceOpticalFlowFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->opticalFlow, "VkPhysicalDeviceOpticalFlowFeaturesNV::opticalFlow"};
}
case Feature::pageableDeviceLocalMemory: {
auto vk_struct = const_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pageableDeviceLocalMemory,
"VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT::pageableDeviceLocalMemory"};
}
case Feature::dynamicPipelineLayout: {
auto vk_struct = const_cast<VkPhysicalDevicePerStageDescriptorSetFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDevicePerStageDescriptorSetFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->dynamicPipelineLayout, "VkPhysicalDevicePerStageDescriptorSetFeaturesNV::dynamicPipelineLayout"};
}
case Feature::perStageDescriptorSet: {
auto vk_struct = const_cast<VkPhysicalDevicePerStageDescriptorSetFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDevicePerStageDescriptorSetFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->perStageDescriptorSet, "VkPhysicalDevicePerStageDescriptorSetFeaturesNV::perStageDescriptorSet"};
}
case Feature::performanceCounterMultipleQueryPools: {
auto vk_struct = const_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePerformanceQueryFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePerformanceQueryFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->performanceCounterMultipleQueryPools,
"VkPhysicalDevicePerformanceQueryFeaturesKHR::performanceCounterMultipleQueryPools"};
}
case Feature::performanceCounterQueryPools: {
auto vk_struct = const_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePerformanceQueryFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePerformanceQueryFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->performanceCounterQueryPools,
"VkPhysicalDevicePerformanceQueryFeaturesKHR::performanceCounterQueryPools"};
}
case Feature::pipelineCreationCacheControl:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineCreationCacheControl, "VkPhysicalDeviceVulkan13Features::pipelineCreationCacheControl"};
} else {
auto vk_struct = const_cast<VkPhysicalDevicePipelineCreationCacheControlFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelineCreationCacheControlFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelineCreationCacheControlFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineCreationCacheControl,
"VkPhysicalDevicePipelineCreationCacheControlFeatures::pipelineCreationCacheControl"};
}
case Feature::pipelineExecutableInfo: {
auto vk_struct = const_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineExecutableInfo,
"VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR::pipelineExecutableInfo"};
}
case Feature::pipelineLibraryGroupHandles: {
auto vk_struct = const_cast<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineLibraryGroupHandles,
"VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT::pipelineLibraryGroupHandles"};
}
case Feature::pipelinePropertiesIdentifier: {
auto vk_struct = const_cast<VkPhysicalDevicePipelinePropertiesFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelinePropertiesFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelinePropertiesIdentifier,
"VkPhysicalDevicePipelinePropertiesFeaturesEXT::pipelinePropertiesIdentifier"};
}
case Feature::pipelineProtectedAccess: {
auto vk_struct = const_cast<VkPhysicalDevicePipelineProtectedAccessFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelineProtectedAccessFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineProtectedAccess,
"VkPhysicalDevicePipelineProtectedAccessFeaturesEXT::pipelineProtectedAccess"};
}
case Feature::pipelineRobustness: {
auto vk_struct = const_cast<VkPhysicalDevicePipelineRobustnessFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePipelineRobustnessFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePipelineRobustnessFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pipelineRobustness, "VkPhysicalDevicePipelineRobustnessFeaturesEXT::pipelineRobustness"};
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::constantAlphaColorBlendFactors: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->constantAlphaColorBlendFactors,
"VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::events: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->events, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::events"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::imageView2DOn3DImage: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageView2DOn3DImage, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::imageViewFormatReinterpretation: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageViewFormatReinterpretation,
"VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::imageViewFormatSwizzle: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageViewFormatSwizzle, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::multisampleArrayImage: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->multisampleArrayImage, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::mutableComparisonSamplers: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->mutableComparisonSamplers,
"VkPhysicalDevicePortabilitySubsetFeaturesKHR::mutableComparisonSamplers"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::pointPolygons: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->pointPolygons, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::samplerMipLodBias: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->samplerMipLodBias, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::separateStencilMaskRef: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->separateStencilMaskRef, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRef"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::shaderSampleRateInterpolationFunctions: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSampleRateInterpolationFunctions,
"VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::tessellationIsolines: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->tessellationIsolines, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::tessellationPointMode: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->tessellationPointMode, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::triangleFans: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->triangleFans, "VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::vertexAttributeAccessBeyondStride: {
auto vk_struct = const_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePortabilitySubsetFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vertexAttributeAccessBeyondStride,
"VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
case Feature::presentBarrier: {
auto vk_struct = const_cast<VkPhysicalDevicePresentBarrierFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDevicePresentBarrierFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePresentBarrierFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->presentBarrier, "VkPhysicalDevicePresentBarrierFeaturesNV::presentBarrier"};
}
case Feature::presentId: {
auto vk_struct = const_cast<VkPhysicalDevicePresentIdFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePresentIdFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePresentIdFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->presentId, "VkPhysicalDevicePresentIdFeaturesKHR::presentId"};
}
case Feature::presentWait: {
auto vk_struct = const_cast<VkPhysicalDevicePresentWaitFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDevicePresentWaitFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePresentWaitFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->presentWait, "VkPhysicalDevicePresentWaitFeaturesKHR::presentWait"};
}
case Feature::primitiveTopologyListRestart: {
auto vk_struct = const_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitiveTopologyListRestart,
"VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT::primitiveTopologyListRestart"};
}
case Feature::primitiveTopologyPatchListRestart: {
auto vk_struct = const_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitiveTopologyPatchListRestart,
"VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT::primitiveTopologyPatchListRestart"};
}
case Feature::primitivesGeneratedQuery: {
auto vk_struct = const_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitivesGeneratedQuery,
"VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT::primitivesGeneratedQuery"};
}
case Feature::primitivesGeneratedQueryWithNonZeroStreams: {
auto vk_struct = const_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitivesGeneratedQueryWithNonZeroStreams,
"VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT::primitivesGeneratedQueryWithNonZeroStreams"};
}
case Feature::primitivesGeneratedQueryWithRasterizerDiscard: {
auto vk_struct = const_cast<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->primitivesGeneratedQueryWithRasterizerDiscard,
"VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT::primitivesGeneratedQueryWithRasterizerDiscard"};
}
case Feature::privateData:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->privateData, "VkPhysicalDeviceVulkan13Features::privateData"};
} else {
auto vk_struct = const_cast<VkPhysicalDevicePrivateDataFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDevicePrivateDataFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDevicePrivateDataFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->privateData, "VkPhysicalDevicePrivateDataFeatures::privateData"};
}
case Feature::protectedMemory:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->protectedMemory, "VkPhysicalDeviceVulkan11Features::protectedMemory"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceProtectedMemoryFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceProtectedMemoryFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceProtectedMemoryFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->protectedMemory, "VkPhysicalDeviceProtectedMemoryFeatures::protectedMemory"};
}
case Feature::provokingVertexLast: {
auto vk_struct = const_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceProvokingVertexFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceProvokingVertexFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->provokingVertexLast, "VkPhysicalDeviceProvokingVertexFeaturesEXT::provokingVertexLast"};
}
case Feature::transformFeedbackPreservesProvokingVertex: {
auto vk_struct = const_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceProvokingVertexFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceProvokingVertexFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->transformFeedbackPreservesProvokingVertex,
"VkPhysicalDeviceProvokingVertexFeaturesEXT::transformFeedbackPreservesProvokingVertex"};
}
case Feature::formatRgba10x6WithoutYCbCrSampler: {
auto vk_struct = const_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->formatRgba10x6WithoutYCbCrSampler,
"VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT::formatRgba10x6WithoutYCbCrSampler"};
}
case Feature::rasterizationOrderColorAttachmentAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rasterizationOrderColorAttachmentAccess,
"VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT::rasterizationOrderColorAttachmentAccess"};
}
case Feature::rasterizationOrderDepthAttachmentAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rasterizationOrderDepthAttachmentAccess,
"VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT::rasterizationOrderDepthAttachmentAccess"};
}
case Feature::rasterizationOrderStencilAttachmentAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rasterizationOrderStencilAttachmentAccess,
"VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT::rasterizationOrderStencilAttachmentAccess"};
}
case Feature::shaderRawAccessChains: {
auto vk_struct = const_cast<VkPhysicalDeviceRawAccessChainsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRawAccessChainsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRawAccessChainsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderRawAccessChains, "VkPhysicalDeviceRawAccessChainsFeaturesNV::shaderRawAccessChains"};
}
case Feature::rayQuery: {
auto vk_struct = const_cast<VkPhysicalDeviceRayQueryFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayQueryFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayQueryFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayQuery, "VkPhysicalDeviceRayQueryFeaturesKHR::rayQuery"};
}
case Feature::rayTracingInvocationReorder: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingInvocationReorder,
"VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV::rayTracingInvocationReorder"};
}
case Feature::rayTracingMaintenance1: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingMaintenance1,
"VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR::rayTracingMaintenance1"};
}
case Feature::rayTracingPipelineTraceRaysIndirect2: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPipelineTraceRaysIndirect2,
"VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR::rayTracingPipelineTraceRaysIndirect2"};
}
case Feature::rayTracingMotionBlur: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingMotionBlur, "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlur"};
}
case Feature::rayTracingMotionBlurPipelineTraceRaysIndirect: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingMotionBlurPipelineTraceRaysIndirect,
"VkPhysicalDeviceRayTracingMotionBlurFeaturesNV::rayTracingMotionBlurPipelineTraceRaysIndirect"};
}
case Feature::rayTracingPipeline: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPipeline, "VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipeline"};
}
case Feature::rayTracingPipelineShaderGroupHandleCaptureReplay: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPipelineShaderGroupHandleCaptureReplay,
"VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay"};
}
case Feature::rayTracingPipelineShaderGroupHandleCaptureReplayMixed: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPipelineShaderGroupHandleCaptureReplayMixed,
"VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed"};
}
case Feature::rayTracingPipelineTraceRaysIndirect: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPipelineTraceRaysIndirect,
"VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineTraceRaysIndirect"};
}
case Feature::rayTraversalPrimitiveCulling: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTraversalPrimitiveCulling,
"VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTraversalPrimitiveCulling"};
}
case Feature::rayTracingPositionFetch: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingPositionFetch,
"VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR::rayTracingPositionFetch"};
}
case Feature::rayTracingValidation: {
auto vk_struct = const_cast<VkPhysicalDeviceRayTracingValidationFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRayTracingValidationFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRayTracingValidationFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->rayTracingValidation, "VkPhysicalDeviceRayTracingValidationFeaturesNV::rayTracingValidation"};
}
case Feature::relaxedLineRasterization: {
auto vk_struct = const_cast<VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->relaxedLineRasterization,
"VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG::relaxedLineRasterization"};
}
case Feature::renderPassStriped: {
auto vk_struct = const_cast<VkPhysicalDeviceRenderPassStripedFeaturesARM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRenderPassStripedFeaturesARM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRenderPassStripedFeaturesARM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->renderPassStriped, "VkPhysicalDeviceRenderPassStripedFeaturesARM::renderPassStriped"};
}
case Feature::representativeFragmentTest: {
auto vk_struct = const_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->representativeFragmentTest,
"VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV::representativeFragmentTest"};
}
case Feature::nullDescriptor: {
auto vk_struct = const_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRobustness2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRobustness2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->nullDescriptor, "VkPhysicalDeviceRobustness2FeaturesEXT::nullDescriptor"};
}
case Feature::robustBufferAccess2: {
auto vk_struct = const_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRobustness2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRobustness2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->robustBufferAccess2, "VkPhysicalDeviceRobustness2FeaturesEXT::robustBufferAccess2"};
}
case Feature::robustImageAccess2: {
auto vk_struct = const_cast<VkPhysicalDeviceRobustness2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceRobustness2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceRobustness2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->robustImageAccess2, "VkPhysicalDeviceRobustness2FeaturesEXT::robustImageAccess2"};
}
case Feature::samplerYcbcrConversion:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->samplerYcbcrConversion, "VkPhysicalDeviceVulkan11Features::samplerYcbcrConversion"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSamplerYcbcrConversionFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->samplerYcbcrConversion,
"VkPhysicalDeviceSamplerYcbcrConversionFeatures::samplerYcbcrConversion"};
}
case Feature::scalarBlockLayout:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->scalarBlockLayout, "VkPhysicalDeviceVulkan12Features::scalarBlockLayout"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceScalarBlockLayoutFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceScalarBlockLayoutFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceScalarBlockLayoutFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->scalarBlockLayout, "VkPhysicalDeviceScalarBlockLayoutFeatures::scalarBlockLayout"};
}
case Feature::schedulingControls: {
auto vk_struct = const_cast<VkPhysicalDeviceSchedulingControlsFeaturesARM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSchedulingControlsFeaturesARM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSchedulingControlsFeaturesARM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->schedulingControls, "VkPhysicalDeviceSchedulingControlsFeaturesARM::schedulingControls"};
}
case Feature::separateDepthStencilLayouts:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->separateDepthStencilLayouts, "VkPhysicalDeviceVulkan12Features::separateDepthStencilLayouts"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->separateDepthStencilLayouts,
"VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures::separateDepthStencilLayouts"};
}
case Feature::shaderFloat16VectorAtomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderFloat16VectorAtomics,
"VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV::shaderFloat16VectorAtomics"};
}
case Feature::shaderBufferFloat16AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat16AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderBufferFloat16AtomicAdd"};
}
case Feature::shaderBufferFloat16AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat16AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderBufferFloat16AtomicMinMax"};
}
case Feature::shaderBufferFloat16Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat16Atomics,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderBufferFloat16Atomics"};
}
case Feature::shaderBufferFloat32AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat32AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderBufferFloat32AtomicMinMax"};
}
case Feature::shaderBufferFloat64AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat64AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderBufferFloat64AtomicMinMax"};
}
case Feature::shaderImageFloat32AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderImageFloat32AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderImageFloat32AtomicMinMax"};
}
case Feature::shaderSharedFloat16AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat16AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderSharedFloat16AtomicAdd"};
}
case Feature::shaderSharedFloat16AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat16AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderSharedFloat16AtomicMinMax"};
}
case Feature::shaderSharedFloat16Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat16Atomics,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderSharedFloat16Atomics"};
}
case Feature::shaderSharedFloat32AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat32AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderSharedFloat32AtomicMinMax"};
}
case Feature::shaderSharedFloat64AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat64AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::shaderSharedFloat64AtomicMinMax"};
}
case Feature::sparseImageFloat32AtomicMinMax: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->sparseImageFloat32AtomicMinMax,
"VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT::sparseImageFloat32AtomicMinMax"};
}
case Feature::shaderBufferFloat32AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat32AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderBufferFloat32AtomicAdd"};
}
case Feature::shaderBufferFloat32Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat32Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderBufferFloat32Atomics"};
}
case Feature::shaderBufferFloat64AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat64AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderBufferFloat64AtomicAdd"};
}
case Feature::shaderBufferFloat64Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferFloat64Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderBufferFloat64Atomics"};
}
case Feature::shaderImageFloat32AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderImageFloat32AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderImageFloat32AtomicAdd"};
}
case Feature::shaderImageFloat32Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderImageFloat32Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderImageFloat32Atomics"};
}
case Feature::shaderSharedFloat32AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat32AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderSharedFloat32AtomicAdd"};
}
case Feature::shaderSharedFloat32Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat32Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderSharedFloat32Atomics"};
}
case Feature::shaderSharedFloat64AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat64AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderSharedFloat64AtomicAdd"};
}
case Feature::shaderSharedFloat64Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedFloat64Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::shaderSharedFloat64Atomics"};
}
case Feature::sparseImageFloat32AtomicAdd: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->sparseImageFloat32AtomicAdd,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32AtomicAdd"};
}
case Feature::sparseImageFloat32Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->sparseImageFloat32Atomics,
"VkPhysicalDeviceShaderAtomicFloatFeaturesEXT::sparseImageFloat32Atomics"};
}
case Feature::shaderBufferInt64Atomics:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferInt64Atomics, "VkPhysicalDeviceVulkan12Features::shaderBufferInt64Atomics"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicInt64Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicInt64Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicInt64Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderBufferInt64Atomics,
"VkPhysicalDeviceShaderAtomicInt64Features::shaderBufferInt64Atomics"};
}
case Feature::shaderSharedInt64Atomics:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedInt64Atomics, "VkPhysicalDeviceVulkan12Features::shaderSharedInt64Atomics"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderAtomicInt64Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderAtomicInt64Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderAtomicInt64Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSharedInt64Atomics,
"VkPhysicalDeviceShaderAtomicInt64Features::shaderSharedInt64Atomics"};
}
case Feature::shaderDeviceClock: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderClockFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderClockFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderClockFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderDeviceClock, "VkPhysicalDeviceShaderClockFeaturesKHR::shaderDeviceClock"};
}
case Feature::shaderSubgroupClock: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderClockFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderClockFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderClockFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupClock, "VkPhysicalDeviceShaderClockFeaturesKHR::shaderSubgroupClock"};
}
case Feature::shaderCoreBuiltins: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderCoreBuiltins, "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM::shaderCoreBuiltins"};
}
case Feature::shaderDemoteToHelperInvocation:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderDemoteToHelperInvocation,
"VkPhysicalDeviceVulkan13Features::shaderDemoteToHelperInvocation"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderDemoteToHelperInvocation,
"VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures::shaderDemoteToHelperInvocation"};
}
case Feature::shaderDrawParameters:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderDrawParameters, "VkPhysicalDeviceVulkan11Features::shaderDrawParameters"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderDrawParametersFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderDrawParametersFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderDrawParametersFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderDrawParameters, "VkPhysicalDeviceShaderDrawParametersFeatures::shaderDrawParameters"};
}
case Feature::shaderEarlyAndLateFragmentTests: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderEarlyAndLateFragmentTests,
"VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD::shaderEarlyAndLateFragmentTests"};
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
case Feature::shaderEnqueue: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderEnqueueFeaturesAMDX *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderEnqueueFeaturesAMDX>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderEnqueueFeaturesAMDX;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderEnqueue, "VkPhysicalDeviceShaderEnqueueFeaturesAMDX::shaderEnqueue"};
}
#endif // VK_ENABLE_BETA_EXTENSIONS
case Feature::shaderExpectAssume: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderExpectAssumeFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderExpectAssumeFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderExpectAssume, "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR::shaderExpectAssume"};
}
case Feature::shaderFloat16:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderFloat16, "VkPhysicalDeviceVulkan12Features::shaderFloat16"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderFloat16Int8Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderFloat16Int8Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderFloat16Int8Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderFloat16, "VkPhysicalDeviceShaderFloat16Int8Features::shaderFloat16"};
}
case Feature::shaderInt8:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInt8, "VkPhysicalDeviceVulkan12Features::shaderInt8"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderFloat16Int8Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderFloat16Int8Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderFloat16Int8Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderInt8, "VkPhysicalDeviceShaderFloat16Int8Features::shaderInt8"};
}
case Feature::shaderFloatControls2: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderFloatControls2FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderFloatControls2FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderFloatControls2, "VkPhysicalDeviceShaderFloatControls2FeaturesKHR::shaderFloatControls2"};
}
case Feature::shaderImageInt64Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderImageInt64Atomics,
"VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT::shaderImageInt64Atomics"};
}
case Feature::sparseImageInt64Atomics: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->sparseImageInt64Atomics,
"VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT::sparseImageInt64Atomics"};
}
case Feature::imageFootprint: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderImageFootprintFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->imageFootprint, "VkPhysicalDeviceShaderImageFootprintFeaturesNV::imageFootprint"};
}
case Feature::shaderIntegerDotProduct:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderIntegerDotProduct, "VkPhysicalDeviceVulkan13Features::shaderIntegerDotProduct"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderIntegerDotProductFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderIntegerDotProductFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderIntegerDotProductFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderIntegerDotProduct,
"VkPhysicalDeviceShaderIntegerDotProductFeatures::shaderIntegerDotProduct"};
}
case Feature::shaderIntegerFunctions2: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderIntegerFunctions2,
"VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL::shaderIntegerFunctions2"};
}
case Feature::shaderMaximalReconvergence: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderMaximalReconvergence,
"VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR::shaderMaximalReconvergence"};
}
case Feature::shaderModuleIdentifier: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderModuleIdentifier,
"VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT::shaderModuleIdentifier"};
}
case Feature::shaderObject: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderObjectFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderObjectFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderObjectFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderObject, "VkPhysicalDeviceShaderObjectFeaturesEXT::shaderObject"};
}
case Feature::shaderQuadControl: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderQuadControlFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderQuadControlFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderQuadControlFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderQuadControl, "VkPhysicalDeviceShaderQuadControlFeaturesKHR::shaderQuadControl"};
}
case Feature::shaderSMBuiltins: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSMBuiltins, "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV::shaderSMBuiltins"};
}
case Feature::shaderSubgroupExtendedTypes:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupExtendedTypes, "VkPhysicalDeviceVulkan12Features::shaderSubgroupExtendedTypes"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupExtendedTypes,
"VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures::shaderSubgroupExtendedTypes"};
}
case Feature::shaderSubgroupRotate: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupRotate, "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR::shaderSubgroupRotate"};
}
case Feature::shaderSubgroupRotateClustered: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupRotateClustered,
"VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR::shaderSubgroupRotateClustered"};
}
case Feature::shaderSubgroupUniformControlFlow: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderSubgroupUniformControlFlow,
"VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR::shaderSubgroupUniformControlFlow"};
}
case Feature::shaderTerminateInvocation:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderTerminateInvocation, "VkPhysicalDeviceVulkan13Features::shaderTerminateInvocation"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceShaderTerminateInvocationFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderTerminateInvocationFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderTerminateInvocationFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderTerminateInvocation,
"VkPhysicalDeviceShaderTerminateInvocationFeatures::shaderTerminateInvocation"};
}
case Feature::shaderTileImageColorReadAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderTileImageFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderTileImageFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderTileImageColorReadAccess,
"VkPhysicalDeviceShaderTileImageFeaturesEXT::shaderTileImageColorReadAccess"};
}
case Feature::shaderTileImageDepthReadAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderTileImageFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderTileImageFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderTileImageDepthReadAccess,
"VkPhysicalDeviceShaderTileImageFeaturesEXT::shaderTileImageDepthReadAccess"};
}
case Feature::shaderTileImageStencilReadAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceShaderTileImageFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShaderTileImageFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShaderTileImageFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderTileImageStencilReadAccess,
"VkPhysicalDeviceShaderTileImageFeaturesEXT::shaderTileImageStencilReadAccess"};
}
case Feature::shadingRateCoarseSampleOrder: {
auto vk_struct = const_cast<VkPhysicalDeviceShadingRateImageFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShadingRateImageFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShadingRateImageFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shadingRateCoarseSampleOrder,
"VkPhysicalDeviceShadingRateImageFeaturesNV::shadingRateCoarseSampleOrder"};
}
case Feature::shadingRateImage: {
auto vk_struct = const_cast<VkPhysicalDeviceShadingRateImageFeaturesNV *>(
vku::FindStructInPNextChain<VkPhysicalDeviceShadingRateImageFeaturesNV>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceShadingRateImageFeaturesNV;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shadingRateImage, "VkPhysicalDeviceShadingRateImageFeaturesNV::shadingRateImage"};
}
case Feature::computeFullSubgroups:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->computeFullSubgroups, "VkPhysicalDeviceVulkan13Features::computeFullSubgroups"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceSubgroupSizeControlFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSubgroupSizeControlFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSubgroupSizeControlFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->computeFullSubgroups, "VkPhysicalDeviceSubgroupSizeControlFeatures::computeFullSubgroups"};
}
case Feature::subgroupSizeControl:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->subgroupSizeControl, "VkPhysicalDeviceVulkan13Features::subgroupSizeControl"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceSubgroupSizeControlFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSubgroupSizeControlFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSubgroupSizeControlFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->subgroupSizeControl, "VkPhysicalDeviceSubgroupSizeControlFeatures::subgroupSizeControl"};
}
case Feature::subpassMergeFeedback: {
auto vk_struct = const_cast<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->subpassMergeFeedback, "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT::subpassMergeFeedback"};
}
case Feature::subpassShading: {
auto vk_struct = const_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->subpassShading, "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI::subpassShading"};
}
case Feature::swapchainMaintenance1: {
auto vk_struct = const_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->swapchainMaintenance1, "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT::swapchainMaintenance1"};
}
case Feature::synchronization2:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->synchronization2, "VkPhysicalDeviceVulkan13Features::synchronization2"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceSynchronization2Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceSynchronization2Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceSynchronization2Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->synchronization2, "VkPhysicalDeviceSynchronization2Features::synchronization2"};
}
case Feature::texelBufferAlignment: {
auto vk_struct = const_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->texelBufferAlignment, "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT::texelBufferAlignment"};
}
case Feature::textureCompressionASTC_HDR:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureCompressionASTC_HDR, "VkPhysicalDeviceVulkan13Features::textureCompressionASTC_HDR"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->textureCompressionASTC_HDR,
"VkPhysicalDeviceTextureCompressionASTCHDRFeatures::textureCompressionASTC_HDR"};
}
case Feature::tileProperties: {
auto vk_struct = const_cast<VkPhysicalDeviceTilePropertiesFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTilePropertiesFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTilePropertiesFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->tileProperties, "VkPhysicalDeviceTilePropertiesFeaturesQCOM::tileProperties"};
}
case Feature::timelineSemaphore:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->timelineSemaphore, "VkPhysicalDeviceVulkan12Features::timelineSemaphore"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceTimelineSemaphoreFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTimelineSemaphoreFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTimelineSemaphoreFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->timelineSemaphore, "VkPhysicalDeviceTimelineSemaphoreFeatures::timelineSemaphore"};
}
case Feature::geometryStreams: {
auto vk_struct = const_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTransformFeedbackFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->geometryStreams, "VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams"};
}
case Feature::transformFeedback: {
auto vk_struct = const_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceTransformFeedbackFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->transformFeedback, "VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback"};
}
case Feature::uniformBufferStandardLayout:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformBufferStandardLayout, "VkPhysicalDeviceVulkan12Features::uniformBufferStandardLayout"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->uniformBufferStandardLayout,
"VkPhysicalDeviceUniformBufferStandardLayoutFeatures::uniformBufferStandardLayout"};
}
case Feature::variablePointers:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->variablePointers, "VkPhysicalDeviceVulkan11Features::variablePointers"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceVariablePointersFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVariablePointersFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVariablePointersFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->variablePointers, "VkPhysicalDeviceVariablePointersFeatures::variablePointers"};
}
case Feature::variablePointersStorageBuffer:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan11Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan11Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan11Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->variablePointersStorageBuffer,
"VkPhysicalDeviceVulkan11Features::variablePointersStorageBuffer"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceVariablePointersFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVariablePointersFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVariablePointersFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->variablePointersStorageBuffer,
"VkPhysicalDeviceVariablePointersFeatures::variablePointersStorageBuffer"};
}
case Feature::vertexAttributeInstanceRateDivisor: {
auto vk_struct = const_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vertexAttributeInstanceRateDivisor,
"VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::vertexAttributeInstanceRateDivisor"};
}
case Feature::vertexAttributeInstanceRateZeroDivisor: {
auto vk_struct = const_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vertexAttributeInstanceRateZeroDivisor,
"VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR::vertexAttributeInstanceRateZeroDivisor"};
}
case Feature::vertexInputDynamicState: {
auto vk_struct = const_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vertexInputDynamicState,
"VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT::vertexInputDynamicState"};
}
case Feature::videoMaintenance1: {
auto vk_struct = const_cast<VkPhysicalDeviceVideoMaintenance1FeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVideoMaintenance1FeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->videoMaintenance1, "VkPhysicalDeviceVideoMaintenance1FeaturesKHR::videoMaintenance1"};
}
case Feature::descriptorIndexing: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->descriptorIndexing, "VkPhysicalDeviceVulkan12Features::descriptorIndexing"};
}
case Feature::drawIndirectCount: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->drawIndirectCount, "VkPhysicalDeviceVulkan12Features::drawIndirectCount"};
}
case Feature::samplerFilterMinmax: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->samplerFilterMinmax, "VkPhysicalDeviceVulkan12Features::samplerFilterMinmax"};
}
case Feature::samplerMirrorClampToEdge: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->samplerMirrorClampToEdge, "VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge"};
}
case Feature::shaderOutputLayer: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderOutputLayer, "VkPhysicalDeviceVulkan12Features::shaderOutputLayer"};
}
case Feature::shaderOutputViewportIndex: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderOutputViewportIndex, "VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex"};
}
case Feature::subgroupBroadcastDynamicId: {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->subgroupBroadcastDynamicId, "VkPhysicalDeviceVulkan12Features::subgroupBroadcastDynamicId"};
}
case Feature::vulkanMemoryModel:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModel, "VkPhysicalDeviceVulkan12Features::vulkanMemoryModel"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkanMemoryModelFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkanMemoryModelFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModel, "VkPhysicalDeviceVulkanMemoryModelFeatures::vulkanMemoryModel"};
}
case Feature::vulkanMemoryModelAvailabilityVisibilityChains:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModelAvailabilityVisibilityChains,
"VkPhysicalDeviceVulkan12Features::vulkanMemoryModelAvailabilityVisibilityChains"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkanMemoryModelFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkanMemoryModelFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModelAvailabilityVisibilityChains,
"VkPhysicalDeviceVulkanMemoryModelFeatures::vulkanMemoryModelAvailabilityVisibilityChains"};
}
case Feature::vulkanMemoryModelDeviceScope:
if (api_version >= VK_API_VERSION_1_2) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan12Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan12Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan12Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModelDeviceScope, "VkPhysicalDeviceVulkan12Features::vulkanMemoryModelDeviceScope"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceVulkanMemoryModelFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkanMemoryModelFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkanMemoryModelFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->vulkanMemoryModelDeviceScope,
"VkPhysicalDeviceVulkanMemoryModelFeatures::vulkanMemoryModelDeviceScope"};
}
case Feature::shaderZeroInitializeWorkgroupMemory:
if (api_version >= VK_API_VERSION_1_3) {
auto vk_struct = const_cast<VkPhysicalDeviceVulkan13Features *>(
vku::FindStructInPNextChain<VkPhysicalDeviceVulkan13Features>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceVulkan13Features;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderZeroInitializeWorkgroupMemory,
"VkPhysicalDeviceVulkan13Features::shaderZeroInitializeWorkgroupMemory"};
} else {
auto vk_struct = const_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *>(
vku::FindStructInPNextChain<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->shaderZeroInitializeWorkgroupMemory,
"VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures::shaderZeroInitializeWorkgroupMemory"};
}
case Feature::workgroupMemoryExplicitLayout: {
auto vk_struct = const_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->workgroupMemoryExplicitLayout,
"VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR::workgroupMemoryExplicitLayout"};
}
case Feature::workgroupMemoryExplicitLayout16BitAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->workgroupMemoryExplicitLayout16BitAccess,
"VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR::workgroupMemoryExplicitLayout16BitAccess"};
}
case Feature::workgroupMemoryExplicitLayout8BitAccess: {
auto vk_struct = const_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->workgroupMemoryExplicitLayout8BitAccess,
"VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR::workgroupMemoryExplicitLayout8BitAccess"};
}
case Feature::workgroupMemoryExplicitLayoutScalarBlockLayout: {
auto vk_struct = const_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR *>(
vku::FindStructInPNextChain<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->workgroupMemoryExplicitLayoutScalarBlockLayout,
"VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR::workgroupMemoryExplicitLayoutScalarBlockLayout"};
}
case Feature::ycbcr2plane444Formats: {
auto vk_struct = const_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->ycbcr2plane444Formats, "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT::ycbcr2plane444Formats"};
}
case Feature::ycbcrDegamma: {
auto vk_struct = const_cast<VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *>(
vku::FindStructInPNextChain<VkPhysicalDeviceYcbcrDegammaFeaturesQCOM>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->ycbcrDegamma, "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM::ycbcrDegamma"};
}
case Feature::ycbcrImageArrays: {
auto vk_struct = const_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT *>(
vku::FindStructInPNextChain<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(*inout_pnext_chain));
if (!vk_struct) {
vk_struct = new VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
*vk_struct = vku::InitStructHelper();
if (*inout_pnext_chain) {
vvl::PnextChainAdd(*inout_pnext_chain, vk_struct);
} else {
*inout_pnext_chain = vk_struct;
}
}
return {&vk_struct->ycbcrImageArrays, "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT::ycbcrImageArrays"};
}
default:
assert(false);
return {nullptr, ""};
}
}
} // namespace vkt
// NOLINTEND