// Copyright (C) 2018 The Android Open Source Project
// Copyright (C) 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Autogenerated module goldfish_vk_extension_structs
//
// (impl) generated by scripts/genvk.py -registry
// ../../../../../hardware/google/gfxstream/codegen/vulkan/vulkan-docs-next/xml/vk.xml
// -registryGfxstream xml/vk_gfxstream.xml cereal -o
// ../../../../../hardware/google/gfxstream/host/vulkan/cereal
//
// Please do not modify directly;
// re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
// or directly from Python by defining:
// VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
// VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
//
// python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
// $CEREAL_OUTPUT_DIR
//

#include "goldfish_vk_extension_structs.h"
namespace gfxstream {
namespace vk {

uint32_t goldfish_vk_struct_type(const void* structExtension) {
    const uint32_t asStructType = *(reinterpret_cast<const uint32_t*>(structExtension));
    return asStructType;
}

size_t goldfish_vk_extension_struct_size(VkStructureType rootType, const void* structExtension) {
    if (!structExtension) {
        return (size_t)0;
    }
    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
    switch (structType) {
#ifdef VK_VERSION_1_0
        case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
            return sizeof(VkShaderModuleCreateInfo);
        }
#endif
#ifdef VK_VERSION_1_1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSubgroupProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
            return sizeof(VkPhysicalDevice16BitStorageFeatures);
        }
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
            return sizeof(VkMemoryDedicatedRequirements);
        }
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
            return sizeof(VkMemoryDedicatedAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
            return sizeof(VkMemoryAllocateFlagsInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
            return sizeof(VkDeviceGroupRenderPassBeginInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
            return sizeof(VkDeviceGroupCommandBufferBeginInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
            return sizeof(VkDeviceGroupSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
            return sizeof(VkDeviceGroupBindSparseInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
            return sizeof(VkBindBufferMemoryDeviceGroupInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
            return sizeof(VkBindImageMemoryDeviceGroupInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
            return sizeof(VkDeviceGroupDeviceCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
            return sizeof(VkPhysicalDeviceFeatures2);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
            return sizeof(VkPhysicalDevicePointClippingProperties);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
            return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
            return sizeof(VkImageViewUsageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
            return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
            return sizeof(VkRenderPassMultiviewCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
            return sizeof(VkPhysicalDeviceMultiviewFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMultiviewProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
            return sizeof(VkPhysicalDeviceVariablePointersFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
            return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
            return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
        }
        case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
            return sizeof(VkProtectedSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
            return sizeof(VkSamplerYcbcrConversionInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
            return sizeof(VkBindImagePlaneMemoryInfo);
        }
        case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
            return sizeof(VkImagePlaneMemoryRequirementsInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
            return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
            return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
            return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
            return sizeof(VkExternalImageFormatProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
            return sizeof(VkPhysicalDeviceIDProperties);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
            return sizeof(VkExternalMemoryImageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
            return sizeof(VkExternalMemoryBufferCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
            return sizeof(VkExportMemoryAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
            return sizeof(VkExportFenceCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
            return sizeof(VkExportSemaphoreCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMaintenance3Properties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
        }
#endif
#ifdef VK_VERSION_1_2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan11Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan11Properties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan12Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan12Properties);
        }
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
            return sizeof(VkImageFormatListCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
            return sizeof(VkPhysicalDevice8BitStorageFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDriverProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
            return sizeof(VkPhysicalDeviceFloatControlsProperties);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
            return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
            return sizeof(VkSubpassDescriptionDepthStencilResolve);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
            return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
        }
        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
            return sizeof(VkImageStencilUsageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
            return sizeof(VkSamplerReductionModeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
            return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
        }
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
            return sizeof(VkFramebufferAttachmentsCreateInfo);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
            return sizeof(VkRenderPassAttachmentBeginInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
            return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
            return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
            return sizeof(VkAttachmentReferenceStencilLayout);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
            return sizeof(VkAttachmentDescriptionStencilLayout);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
            return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
            return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
            return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
        }
        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
            return sizeof(VkSemaphoreTypeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
            return sizeof(VkTimelineSemaphoreSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
        }
        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
            return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
        }
        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
            return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
        }
#endif
#ifdef VK_VERSION_1_3
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan13Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan13Properties);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
            return sizeof(VkPipelineCreationFeedbackCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
            return sizeof(VkPhysicalDevicePrivateDataFeatures);
        }
        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
            return sizeof(VkDevicePrivateDataCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
            return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
        }
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
            return sizeof(VkMemoryBarrier2);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
            return sizeof(VkPhysicalDeviceSynchronization2Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
            return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
            return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
            return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
            return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
            return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
            return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
        }
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
            return sizeof(VkWriteDescriptorSetInlineUniformBlock);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
            return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
            return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
            return sizeof(VkPipelineRenderingCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
            return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
            return sizeof(VkCommandBufferInheritanceRenderingInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
            return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
            return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
        }
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
            return sizeof(VkFormatProperties3);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
            return sizeof(VkPhysicalDeviceMaintenance4Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMaintenance4Properties);
        }
#endif
#ifdef VK_KHR_swapchain
        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
            return sizeof(VkImageSwapchainCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
            return sizeof(VkBindImageMemorySwapchainInfoKHR);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
            return sizeof(VkDeviceGroupPresentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
            return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
        }
#endif
#ifdef VK_KHR_display_swapchain
        case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
            return sizeof(VkDisplayPresentInfoKHR);
        }
#endif
#ifdef VK_KHR_video_queue
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyVideoPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
            return sizeof(VkVideoProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
            return sizeof(VkVideoProfileListInfoKHR);
        }
#endif
#ifdef VK_KHR_video_decode_queue
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeCapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
            return sizeof(VkVideoDecodeUsageInfoKHR);
        }
#endif
#ifdef VK_KHR_video_decode_h264
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264ProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeH264CapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
            return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264PictureInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
            return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
        }
#endif
#ifdef VK_KHR_dynamic_rendering
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
            return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
            return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
            return sizeof(VkAttachmentSampleCountInfoAMD);
        }
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
            return sizeof(VkMultiviewPerViewAttributesInfoNVX);
        }
#endif
#ifdef VK_KHR_win32_keyed_mutex
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
            return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
        }
#endif
#ifdef VK_KHR_push_descriptor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
        }
#endif
#ifdef VK_KHR_incremental_present
        case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
            return sizeof(VkPresentRegionsKHR);
        }
#endif
#ifdef VK_KHR_shared_presentable_image
        case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
            return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
        }
#endif
#ifdef VK_KHR_external_fence_win32
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
            return sizeof(VkExportFenceWin32HandleInfoKHR);
        }
#endif
#ifdef VK_KHR_performance_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
            return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
            return sizeof(VkPerformanceQuerySubmitInfoKHR);
        }
#endif
#ifdef VK_KHR_portability_subset
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_KHR_shader_clock
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
        }
#endif
#ifdef VK_KHR_video_decode_h265
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265ProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeH265CapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
            return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265PictureInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
            return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
        }
#endif
#ifdef VK_KHR_global_priority
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
            return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
        }
#endif
#ifdef VK_KHR_fragment_shading_rate
        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
            return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
            return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
        }
#endif
#ifdef VK_KHR_surface_protected_capabilities
        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
            return sizeof(VkSurfaceProtectedCapabilitiesKHR);
        }
#endif
#ifdef VK_KHR_present_wait
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
        }
#endif
#ifdef VK_KHR_pipeline_executable_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
        }
#endif
#ifdef VK_KHR_pipeline_library
        case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
            return sizeof(VkPipelineLibraryCreateInfoKHR);
        }
#endif
#ifdef VK_KHR_present_id
        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
            return sizeof(VkPresentIdKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
        }
#endif
#ifdef VK_KHR_video_encode_queue
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
            return sizeof(VkVideoEncodeCapabilitiesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
            return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
            return sizeof(VkVideoEncodeUsageInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
            return sizeof(VkVideoEncodeRateControlInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR: {
            return sizeof(VkVideoEncodeQualityLevelInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_KHR_synchronization2
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
            return sizeof(VkQueueFamilyCheckpointProperties2NV);
        }
#endif
#ifdef VK_KHR_fragment_shader_barycentric
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
        }
#endif
#ifdef VK_KHR_shader_subgroup_uniform_control_flow
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
        }
#endif
#ifdef VK_KHR_workgroup_memory_explicit_layout
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_maintenance1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
        }
#endif
#ifdef VK_KHR_maintenance5
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
            return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
            return sizeof(VkBufferUsageFlags2CreateInfoKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_position_fetch
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
        }
#endif
#ifdef VK_KHR_cooperative_matrix
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesKHR);
        }
#endif
#ifdef VK_KHR_line_rasterization
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
            return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
        }
#endif
#ifdef VK_ANDROID_native_buffer
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
            return sizeof(VkNativeBufferANDROID);
        }
#endif
#ifdef VK_EXT_debug_report
        case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
            return sizeof(VkDebugReportCallbackCreateInfoEXT);
        }
#endif
#ifdef VK_AMD_rasterization_order
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
            return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
        }
#endif
#ifdef VK_NV_dedicated_allocation
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationImageCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
        }
#endif
#ifdef VK_EXT_transform_feedback
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_video_encode_h264
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
            return sizeof(VkVideoEncodeH264CapabilitiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT: {
            return sizeof(VkVideoEncodeH264QualityLevelPropertiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersGetInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersFeedbackInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264PictureInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
            return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264ProfileInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
            return sizeof(VkVideoEncodeH264RateControlInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
            return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT: {
            return sizeof(VkVideoEncodeH264GopRemainingFrameInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_EXT_video_encode_h265
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
            return sizeof(VkVideoEncodeH265CapabilitiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT: {
            return sizeof(VkVideoEncodeH265QualityLevelPropertiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersGetInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersFeedbackInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265PictureInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
            return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265ProfileInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
            return sizeof(VkVideoEncodeH265RateControlInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
            return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT: {
            return sizeof(VkVideoEncodeH265GopRemainingFrameInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_AMD_texture_gather_bias_lod
        case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
            return sizeof(VkTextureLODGatherFormatPropertiesAMD);
        }
#endif
#ifdef VK_NV_corner_sampled_image
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
        }
#endif
#ifdef VK_NV_external_memory
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
            return sizeof(VkExternalMemoryImageCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
            return sizeof(VkExportMemoryAllocateInfoNV);
        }
#endif
#ifdef VK_NV_external_memory_win32
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
            return sizeof(VkImportMemoryWin32HandleInfoNV);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
            return sizeof(VkExportMemoryWin32HandleInfoNV);
        }
#endif
#ifdef VK_NV_win32_keyed_mutex
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
            return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
        }
#endif
#ifdef VK_EXT_validation_flags
        case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
            return sizeof(VkValidationFlagsEXT);
        }
#endif
#ifdef VK_EXT_astc_decode_mode
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
            return sizeof(VkImageViewASTCDecodeModeEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
        }
#endif
#ifdef VK_EXT_pipeline_robustness
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRobustnessCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_conditional_rendering
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
            return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
        }
#endif
#ifdef VK_NV_clip_space_w_scaling
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_display_control
        case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainCounterCreateInfoEXT);
        }
#endif
#ifdef VK_GOOGLE_display_timing
        case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
            return sizeof(VkPresentTimesInfoGOOGLE);
        }
#endif
#ifdef VK_NVX_multiview_per_view_attributes
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
        }
#endif
#ifdef VK_NV_viewport_swizzle
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_discard_rectangles
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_conservative_rasterization
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_depth_clip_enable
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_debug_utils
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
            return sizeof(VkDebugUtilsObjectNameInfoEXT);
        }
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
            return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
        }
#endif
#ifdef VK_AMDX_shader_enqueue
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: {
            return sizeof(VkPhysicalDeviceShaderEnqueueFeaturesAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: {
            return sizeof(VkPhysicalDeviceShaderEnqueuePropertiesAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX: {
            return sizeof(VkPipelineShaderStageNodeCreateInfoAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_EXT_sample_locations
        case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
            return sizeof(VkSampleLocationsInfoEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
            return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
        }
#endif
#ifdef VK_EXT_blend_operation_advanced
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
        }
#endif
#ifdef VK_NV_fragment_coverage_to_color
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_framebuffer_mixed_samples
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_shader_sm_builtins
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
        }
#endif
#ifdef VK_EXT_image_drm_format_modifier
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
            return sizeof(VkDrmFormatModifierPropertiesListEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
            return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
            return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
            return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
            return sizeof(VkDrmFormatModifierPropertiesList2EXT);
        }
#endif
#ifdef VK_EXT_validation_cache
        case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
            return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
        }
#endif
#ifdef VK_NV_shading_rate_image
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_ray_tracing
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
            return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
        }
#endif
#ifdef VK_NV_representative_fragment_test
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_filter_cubic
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
            return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
        }
        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
            return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
        }
#endif
#ifdef VK_EXT_external_memory_host
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
            return sizeof(VkImportMemoryHostPointerInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
        }
#endif
#ifdef VK_AMD_pipeline_compiler_control
        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
            return sizeof(VkPipelineCompilerControlCreateInfoAMD);
        }
#endif
#ifdef VK_AMD_shader_core_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
            return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
        }
#endif
#ifdef VK_AMD_memory_overallocation_behavior
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
            return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
        }
#endif
#ifdef VK_EXT_vertex_attribute_divisor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
        }
#endif
#ifdef VK_GGP_frame_token
        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
            return sizeof(VkPresentFrameTokenGGP);
        }
#endif
#ifdef VK_NV_compute_shader_derivatives
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
        }
#endif
#ifdef VK_NV_mesh_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
        }
#endif
#ifdef VK_NV_shader_image_footprint
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
        }
#endif
#ifdef VK_NV_scissor_exclusive
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
        }
#endif
#ifdef VK_INTEL_shader_integer_functions2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
            return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
        }
#endif
#ifdef VK_INTEL_performance_query
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
            return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
        }
#endif
#ifdef VK_EXT_pci_bus_info
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
        }
#endif
#ifdef VK_AMD_display_native_hdr
        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
            return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
            return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
        }
#endif
#ifdef VK_EXT_fragment_density_map
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkImportColorBufferGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
            }
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkCreateBlobGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
                    break;
                }
            }
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkImportBufferGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
            }
        }
#endif
#ifdef VK_AMD_shader_core_properties2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
            return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
        }
#endif
#ifdef VK_AMD_device_coherent_memory
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
            return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
        }
#endif
#ifdef VK_EXT_shader_image_atomic_int64
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
        }
#endif
#ifdef VK_EXT_memory_budget
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
        }
#endif
#ifdef VK_EXT_memory_priority
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
            return sizeof(VkMemoryPriorityAllocateInfoEXT);
        }
#endif
#ifdef VK_NV_dedicated_allocation_image_aliasing
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
        }
#endif
#ifdef VK_EXT_buffer_device_address
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
            return sizeof(VkBufferDeviceAddressCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_validation_features
        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
            return sizeof(VkValidationFeaturesEXT);
        }
#endif
#ifdef VK_NV_cooperative_matrix
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
        }
#endif
#ifdef VK_NV_coverage_reduction_mode
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_fragment_shader_interlock
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
        }
#endif
#ifdef VK_EXT_ycbcr_image_arrays
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
        }
#endif
#ifdef VK_EXT_provoking_vertex
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_full_screen_exclusive
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
            return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
            return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
            return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
        }
#endif
#ifdef VK_EXT_shader_atomic_float
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
        }
#endif
#ifdef VK_EXT_index_type_uint8
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_EXT_host_image_copy
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
            return sizeof(VkSubresourceHostMemcpySizeEXT);
        }
        case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
            return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
        }
#endif
#ifdef VK_EXT_shader_atomic_float2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
        }
#endif
#ifdef VK_EXT_surface_maintenance1
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
            return sizeof(VkSurfacePresentModeEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
            return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
            return sizeof(VkSurfacePresentModeCompatibilityEXT);
        }
#endif
#ifdef VK_EXT_swapchain_maintenance1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
            return sizeof(VkSwapchainPresentFenceInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainPresentModesCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
            return sizeof(VkSwapchainPresentModeInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
        }
#endif
#ifdef VK_NV_device_generated_commands
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
            return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
        }
#endif
#ifdef VK_NV_inherited_viewport_scissor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
            return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
        }
#endif
#ifdef VK_EXT_texel_buffer_alignment
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_render_pass_transform
        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
            return sizeof(VkRenderPassTransformBeginInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
            return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
        }
#endif
#ifdef VK_EXT_depth_bias_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthBiasControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT: {
            return sizeof(VkDepthBiasRepresentationInfoEXT);
        }
#endif
#ifdef VK_EXT_device_memory_report
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
            return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_robustness2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
        }
#endif
#ifdef VK_EXT_custom_border_color
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
            return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
        }
#endif
#ifdef VK_NV_present_barrier
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
            return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
            return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
            return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
        }
#endif
#ifdef VK_NV_device_diagnostics_config
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
            return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
        }
#endif
#ifdef VK_NV_cuda_kernel_launch
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCudaKernelLaunchFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCudaKernelLaunchPropertiesNV);
        }
#endif
#ifdef VK_NV_low_latency
        case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
            return sizeof(VkQueryLowLatencySupportNV);
        }
#endif
#ifdef VK_EXT_descriptor_buffer
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
            return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
        }
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
            return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_graphics_pipeline_library
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
            return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
        }
#endif
#ifdef VK_AMD_shader_early_and_late_fragment_tests
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
            return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
        }
#endif
#ifdef VK_NV_fragment_shading_rate_enums
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_ray_tracing_motion_blur
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
            return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
        }
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
            return sizeof(VkAccelerationStructureMotionInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
        }
#endif
#ifdef VK_EXT_ycbcr_2plane_444_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
        }
#endif
#ifdef VK_EXT_fragment_density_map2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
        }
#endif
#ifdef VK_QCOM_rotated_copy_commands
        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
            return sizeof(VkCopyCommandTransformInfoQCOM);
        }
#endif
#ifdef VK_EXT_image_compression_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
            return sizeof(VkImageCompressionControlEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
            return sizeof(VkImageCompressionPropertiesEXT);
        }
#endif
#ifdef VK_EXT_attachment_feedback_loop_layout
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
        }
#endif
#ifdef VK_EXT_4444_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
        }
#endif
#ifdef VK_EXT_device_fault
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
        }
#endif
#ifdef VK_ARM_rasterization_order_attachment_access
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
        }
#endif
#ifdef VK_EXT_rgba10x6_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
        }
#endif
#ifdef VK_VALVE_mutable_descriptor_type
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
            return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_vertex_input_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_EXT_physical_device_drm
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
        }
#endif
#ifdef VK_EXT_device_address_binding_report
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
            return sizeof(VkDeviceAddressBindingCallbackDataEXT);
        }
#endif
#ifdef VK_EXT_depth_clip_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
            return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_primitive_topology_list_restart
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
        }
#endif
#ifdef VK_FUCHSIA_external_memory
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
            return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
        }
#endif
#ifdef VK_FUCHSIA_buffer_collection
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
            return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
        }
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
            return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
        }
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
            return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
        }
#endif
#ifdef VK_HUAWEI_subpass_shading
        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
            return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
            return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
        }
#endif
#ifdef VK_HUAWEI_invocation_mask
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
        }
#endif
#ifdef VK_NV_external_memory_rdma
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
        }
#endif
#ifdef VK_EXT_pipeline_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
        }
#endif
#ifdef VK_EXT_frame_boundary
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFrameBoundaryFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: {
            return sizeof(VkFrameBoundaryEXT);
        }
#endif
#ifdef VK_EXT_multisampled_render_to_single_sampled
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
            return sizeof(VkSubpassResolvePerformanceQueryEXT);
        }
        case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
            return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
        }
#endif
#ifdef VK_EXT_color_write_enable
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineColorWriteCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_primitives_generated_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
        }
#endif
#ifdef VK_GOOGLE_gfxstream
        case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
            return sizeof(VkImportColorBufferGOOGLE);
        }
        case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
            return sizeof(VkImportBufferGOOGLE);
        }
        case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
            return sizeof(VkCreateBlobGOOGLE);
        }
#endif
#ifdef VK_EXT_image_view_min_lod
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
            return sizeof(VkImageViewMinLodCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_multi_draw
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
        }
#endif
#ifdef VK_EXT_image_2d_view_of_3d
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
        }
#endif
#ifdef VK_EXT_shader_tile_image
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
        }
#endif
#ifdef VK_EXT_opacity_micromap
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
            return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
        }
#endif
#ifdef VK_NV_displacement_micromap
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
            return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_HUAWEI_cluster_culling_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
            return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
        }
#endif
#ifdef VK_EXT_border_color_swizzle
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
            return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_pageable_device_local_memory
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
        }
#endif
#ifdef VK_ARM_shader_core_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
        }
#endif
#ifdef VK_ARM_scheduling_controls
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM: {
            return sizeof(VkDeviceQueueShaderCoreControlCreateInfoARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM: {
            return sizeof(VkPhysicalDeviceSchedulingControlsFeaturesARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceSchedulingControlsPropertiesARM);
        }
#endif
#ifdef VK_EXT_image_sliced_view_of_3d
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
            return sizeof(VkImageViewSlicedCreateInfoEXT);
        }
#endif
#ifdef VK_VALVE_descriptor_set_host_mapping
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
            return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
        }
#endif
#ifdef VK_EXT_depth_clamp_zero_one
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
        }
#endif
#ifdef VK_EXT_non_seamless_cube_map
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_fragment_density_map_offset
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
            return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
        }
#endif
#ifdef VK_NV_copy_memory_indirect
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
        }
#endif
#ifdef VK_NV_memory_decompression
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
        }
#endif
#ifdef VK_NV_device_generated_commands_compute
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV);
        }
#endif
#ifdef VK_NV_linear_color_attachment
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
        }
#endif
#ifdef VK_EXT_image_compression_control_swapchain
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_image_processing
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
            return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
        }
#endif
#ifdef VK_EXT_nested_command_buffer
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceNestedCommandBufferFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceNestedCommandBufferPropertiesEXT);
        }
#endif
#ifdef VK_EXT_external_memory_acquire_unmodified
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT: {
            return sizeof(VkExternalMemoryAcquireUnmodifiedEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state3
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
        }
#endif
#ifdef VK_EXT_subpass_merge_feedback
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
            return sizeof(VkRenderPassCreationControlEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
            return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
            return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
        }
#endif
#ifdef VK_LUNARG_direct_driver_loading
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
            return sizeof(VkDirectDriverLoadingListLUNARG);
        }
#endif
#ifdef VK_EXT_shader_module_identifier
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
            return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
        }
#endif
#ifdef VK_NV_optical_flow
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
            return sizeof(VkOpticalFlowImageFormatInfoNV);
        }
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
            return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
        }
#endif
#ifdef VK_EXT_legacy_dithering
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
        }
#endif
#ifdef VK_EXT_pipeline_protected_access
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
        }
#endif
#ifdef VK_ANDROID_external_format_resolve
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID: {
            return sizeof(VkPhysicalDeviceExternalFormatResolveFeaturesANDROID);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
            return sizeof(VkPhysicalDeviceExternalFormatResolvePropertiesANDROID);
        }
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
            return sizeof(VkAndroidHardwareBufferFormatResolvePropertiesANDROID);
        }
#endif
#ifdef VK_EXT_shader_object
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
        }
#endif
#ifdef VK_QCOM_tile_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
        }
#endif
#ifdef VK_SEC_amigo_profiling
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
            return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
        }
        case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
            return sizeof(VkAmigoProfilingSubmitInfoSEC);
        }
#endif
#ifdef VK_QCOM_multiview_per_view_viewports
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
        }
#endif
#ifdef VK_NV_ray_tracing_invocation_reorder
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
        }
#endif
#ifdef VK_NV_extended_sparse_address_space
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV);
        }
#endif
#ifdef VK_ARM_shader_core_builtins
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
        }
#endif
#ifdef VK_EXT_pipeline_library_group_handles
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
        }
#endif
#ifdef VK_EXT_dynamic_rendering_unused_attachments
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT);
        }
#endif
#ifdef VK_NV_low_latency2
        case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: {
            return sizeof(VkLatencySubmissionPresentIdNV);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: {
            return sizeof(VkSwapchainLatencyCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: {
            return sizeof(VkLatencySurfaceCapabilitiesNV);
        }
#endif
#ifdef VK_QCOM_multiview_per_view_render_areas
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
            return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
        }
#endif
#ifdef VK_QCOM_image_processing2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessing2FeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessing2PropertiesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerBlockMatchWindowCreateInfoQCOM);
        }
#endif
#ifdef VK_QCOM_filter_cubic_weights
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceCubicWeightsFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerCubicWeightsCreateInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM: {
            return sizeof(VkBlitImageCubicWeightsInfoQCOM);
        }
#endif
#ifdef VK_QCOM_ycbcr_degamma
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceYcbcrDegammaFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM);
        }
#endif
#ifdef VK_QCOM_filter_cubic_clamp
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceCubicClampFeaturesQCOM);
        }
#endif
#ifdef VK_EXT_attachment_feedback_loop_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_MSFT_layered_driver
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: {
            return sizeof(VkPhysicalDeviceLayeredDriverPropertiesMSFT);
        }
#endif
#ifdef VK_NV_descriptor_pool_overallocation
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV);
        }
#endif
#ifdef VK_KHR_acceleration_structure
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
            return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_pipeline
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
        }
#endif
#ifdef VK_KHR_ray_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
        }
#endif
#ifdef VK_EXT_mesh_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
        }
#endif
        default: {
            fprintf(stderr, "Unhandled Vulkan structure type %s [%d], aborting.\n",
                    string_VkStructureType(VkStructureType(structType)), structType);
            GFXSTREAM_ABORT(::emugl::FatalError(::emugl::ABORT_REASON_OTHER));
            return static_cast<size_t>(0);
        }
    }
}

size_t goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,
                                                              VkStructureType rootType,
                                                              const void* structExtension) {
    if (!structExtension) {
        return (size_t)0;
    }
    uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
    switch (structType) {
#ifdef VK_VERSION_1_0
        case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
            return sizeof(VkShaderModuleCreateInfo);
        }
#endif
#ifdef VK_VERSION_1_1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSubgroupProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
            return sizeof(VkPhysicalDevice16BitStorageFeatures);
        }
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
            return sizeof(VkMemoryDedicatedRequirements);
        }
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
            return sizeof(VkMemoryDedicatedAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
            return sizeof(VkMemoryAllocateFlagsInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
            return sizeof(VkDeviceGroupRenderPassBeginInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
            return sizeof(VkDeviceGroupCommandBufferBeginInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
            return sizeof(VkDeviceGroupSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
            return sizeof(VkDeviceGroupBindSparseInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
            return sizeof(VkBindBufferMemoryDeviceGroupInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
            return sizeof(VkBindImageMemoryDeviceGroupInfo);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
            return sizeof(VkDeviceGroupDeviceCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
            return sizeof(VkPhysicalDeviceFeatures2);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
            return sizeof(VkPhysicalDevicePointClippingProperties);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
            return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
            return sizeof(VkImageViewUsageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
            return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
            return sizeof(VkRenderPassMultiviewCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
            return sizeof(VkPhysicalDeviceMultiviewFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMultiviewProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
            return sizeof(VkPhysicalDeviceVariablePointersFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
            return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
            return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
        }
        case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
            return sizeof(VkProtectedSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
            return sizeof(VkSamplerYcbcrConversionInfo);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
            return sizeof(VkBindImagePlaneMemoryInfo);
        }
        case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
            return sizeof(VkImagePlaneMemoryRequirementsInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
            return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
            return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
            return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
            return sizeof(VkExternalImageFormatProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
            return sizeof(VkPhysicalDeviceIDProperties);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
            return sizeof(VkExternalMemoryImageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
            return sizeof(VkExternalMemoryBufferCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
            return sizeof(VkExportMemoryAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
            return sizeof(VkExportFenceCreateInfo);
        }
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
            return sizeof(VkExportSemaphoreCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMaintenance3Properties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
        }
#endif
#ifdef VK_VERSION_1_2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan11Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan11Properties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan12Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan12Properties);
        }
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
            return sizeof(VkImageFormatListCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
            return sizeof(VkPhysicalDevice8BitStorageFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDriverProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
            if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT) {
                return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
            } else {
                return 0;
            }
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
            return sizeof(VkPhysicalDeviceFloatControlsProperties);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
            return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
            return sizeof(VkSubpassDescriptionDepthStencilResolve);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
            return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
            return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
        }
        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
            return sizeof(VkImageStencilUsageCreateInfo);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
            return sizeof(VkSamplerReductionModeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
            return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
        }
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
            return sizeof(VkFramebufferAttachmentsCreateInfo);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
            return sizeof(VkRenderPassAttachmentBeginInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
            return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
            return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
            return sizeof(VkAttachmentReferenceStencilLayout);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
            return sizeof(VkAttachmentDescriptionStencilLayout);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
            return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
            return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
            return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
        }
        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
            return sizeof(VkSemaphoreTypeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
            return sizeof(VkTimelineSemaphoreSubmitInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
        }
        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
            return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
        }
        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
            return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
        }
#endif
#ifdef VK_VERSION_1_3
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
            return sizeof(VkPhysicalDeviceVulkan13Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
            return sizeof(VkPhysicalDeviceVulkan13Properties);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
            return sizeof(VkPipelineCreationFeedbackCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
            return sizeof(VkPhysicalDevicePrivateDataFeatures);
        }
        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
            return sizeof(VkDevicePrivateDataCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
            return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
        }
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
            return sizeof(VkMemoryBarrier2);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
            return sizeof(VkPhysicalDeviceSynchronization2Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
            return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
            return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
            return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
            return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
            return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
            return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
            return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
        }
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
            return sizeof(VkWriteDescriptorSetInlineUniformBlock);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
            return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
            return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
            return sizeof(VkPipelineRenderingCreateInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
            return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
            return sizeof(VkCommandBufferInheritanceRenderingInfo);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
            return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
            return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
            return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
        }
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
            return sizeof(VkFormatProperties3);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
            return sizeof(VkPhysicalDeviceMaintenance4Features);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
            return sizeof(VkPhysicalDeviceMaintenance4Properties);
        }
#endif
#ifdef VK_KHR_swapchain
        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
            return sizeof(VkImageSwapchainCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
            return sizeof(VkBindImageMemorySwapchainInfoKHR);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
            return sizeof(VkDeviceGroupPresentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
            return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
        }
#endif
#ifdef VK_KHR_display_swapchain
        case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
            return sizeof(VkDisplayPresentInfoKHR);
        }
#endif
#ifdef VK_KHR_video_queue
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyVideoPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
            return sizeof(VkVideoProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
            return sizeof(VkVideoProfileListInfoKHR);
        }
#endif
#ifdef VK_KHR_video_decode_queue
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeCapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
            return sizeof(VkVideoDecodeUsageInfoKHR);
        }
#endif
#ifdef VK_KHR_video_decode_h264
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264ProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeH264CapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
            return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
            return sizeof(VkVideoDecodeH264PictureInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
            return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
        }
#endif
#ifdef VK_KHR_dynamic_rendering
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
            return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
            return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
        }
        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
            return sizeof(VkAttachmentSampleCountInfoAMD);
        }
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
            return sizeof(VkMultiviewPerViewAttributesInfoNVX);
        }
#endif
#ifdef VK_KHR_win32_keyed_mutex
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
            return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
        }
#endif
#ifdef VK_KHR_push_descriptor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
        }
#endif
#ifdef VK_KHR_incremental_present
        case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
            return sizeof(VkPresentRegionsKHR);
        }
#endif
#ifdef VK_KHR_shared_presentable_image
        case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
            return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
        }
#endif
#ifdef VK_KHR_external_fence_win32
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
            return sizeof(VkExportFenceWin32HandleInfoKHR);
        }
#endif
#ifdef VK_KHR_performance_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
            return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
            return sizeof(VkPerformanceQuerySubmitInfoKHR);
        }
#endif
#ifdef VK_KHR_portability_subset
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_KHR_shader_clock
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
        }
#endif
#ifdef VK_KHR_video_decode_h265
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265ProfileInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
            return sizeof(VkVideoDecodeH265CapabilitiesKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
            return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
            return sizeof(VkVideoDecodeH265PictureInfoKHR);
        }
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
            return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
        }
#endif
#ifdef VK_KHR_global_priority
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
            return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
            return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
        }
#endif
#ifdef VK_KHR_fragment_shading_rate
        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
            return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
            return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
        }
#endif
#ifdef VK_KHR_surface_protected_capabilities
        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
            return sizeof(VkSurfaceProtectedCapabilitiesKHR);
        }
#endif
#ifdef VK_KHR_present_wait
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
        }
#endif
#ifdef VK_KHR_pipeline_executable_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
        }
#endif
#ifdef VK_KHR_pipeline_library
        case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
            return sizeof(VkPipelineLibraryCreateInfoKHR);
        }
#endif
#ifdef VK_KHR_present_id
        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
            return sizeof(VkPresentIdKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
            return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
        }
#endif
#ifdef VK_KHR_video_encode_queue
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
            return sizeof(VkVideoEncodeCapabilitiesKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
            return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
            return sizeof(VkVideoEncodeUsageInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
            return sizeof(VkVideoEncodeRateControlInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR: {
            return sizeof(VkVideoEncodeQualityLevelInfoKHR);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_KHR_synchronization2
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
            return sizeof(VkQueueFamilyCheckpointProperties2NV);
        }
#endif
#ifdef VK_KHR_fragment_shader_barycentric
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
        }
#endif
#ifdef VK_KHR_shader_subgroup_uniform_control_flow
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
        }
#endif
#ifdef VK_KHR_workgroup_memory_explicit_layout
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_maintenance1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
        }
#endif
#ifdef VK_KHR_maintenance5
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
            return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
        }
        case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
            return sizeof(VkBufferUsageFlags2CreateInfoKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_position_fetch
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
        }
#endif
#ifdef VK_KHR_cooperative_matrix
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesKHR);
        }
#endif
#ifdef VK_KHR_line_rasterization
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
            return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
        }
#endif
#ifdef VK_ANDROID_native_buffer
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
            return sizeof(VkNativeBufferANDROID);
        }
#endif
#ifdef VK_EXT_debug_report
        case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
            return sizeof(VkDebugReportCallbackCreateInfoEXT);
        }
#endif
#ifdef VK_AMD_rasterization_order
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
            return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
        }
#endif
#ifdef VK_NV_dedicated_allocation
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationImageCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
            return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
        }
#endif
#ifdef VK_EXT_transform_feedback
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_video_encode_h264
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
            return sizeof(VkVideoEncodeH264CapabilitiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT: {
            return sizeof(VkVideoEncodeH264QualityLevelPropertiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersGetInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
            return sizeof(VkVideoEncodeH264SessionParametersFeedbackInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264PictureInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
            return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
            return sizeof(VkVideoEncodeH264ProfileInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
            return sizeof(VkVideoEncodeH264RateControlInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
            return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT: {
            return sizeof(VkVideoEncodeH264GopRemainingFrameInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_EXT_video_encode_h265
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
            return sizeof(VkVideoEncodeH265CapabilitiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT: {
            return sizeof(VkVideoEncodeH265QualityLevelPropertiesEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersGetInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
            return sizeof(VkVideoEncodeH265SessionParametersFeedbackInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265PictureInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
            return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
            return sizeof(VkVideoEncodeH265ProfileInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
            return sizeof(VkVideoEncodeH265RateControlInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
            return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT: {
            return sizeof(VkVideoEncodeH265GopRemainingFrameInfoEXT);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_AMD_texture_gather_bias_lod
        case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
            return sizeof(VkTextureLODGatherFormatPropertiesAMD);
        }
#endif
#ifdef VK_NV_corner_sampled_image
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
        }
#endif
#ifdef VK_NV_external_memory
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
            return sizeof(VkExternalMemoryImageCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
            return sizeof(VkExportMemoryAllocateInfoNV);
        }
#endif
#ifdef VK_NV_external_memory_win32
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
            return sizeof(VkImportMemoryWin32HandleInfoNV);
        }
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
            return sizeof(VkExportMemoryWin32HandleInfoNV);
        }
#endif
#ifdef VK_NV_win32_keyed_mutex
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
            return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
        }
#endif
#ifdef VK_EXT_validation_flags
        case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
            return sizeof(VkValidationFlagsEXT);
        }
#endif
#ifdef VK_EXT_astc_decode_mode
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
            return sizeof(VkImageViewASTCDecodeModeEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
        }
#endif
#ifdef VK_EXT_pipeline_robustness
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRobustnessCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_conditional_rendering
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
            return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
        }
#endif
#ifdef VK_NV_clip_space_w_scaling
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_display_control
        case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainCounterCreateInfoEXT);
        }
#endif
#ifdef VK_GOOGLE_display_timing
        case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
            return sizeof(VkPresentTimesInfoGOOGLE);
        }
#endif
#ifdef VK_NVX_multiview_per_view_attributes
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
        }
#endif
#ifdef VK_NV_viewport_swizzle
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_discard_rectangles
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_conservative_rasterization
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_depth_clip_enable
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_debug_utils
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
            return sizeof(VkDebugUtilsObjectNameInfoEXT);
        }
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
            return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
        }
#endif
#ifdef VK_AMDX_shader_enqueue
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: {
            return sizeof(VkPhysicalDeviceShaderEnqueueFeaturesAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: {
            return sizeof(VkPhysicalDeviceShaderEnqueuePropertiesAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX: {
            return sizeof(VkPipelineShaderStageNodeCreateInfoAMDX);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_EXT_sample_locations
        case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
            return sizeof(VkSampleLocationsInfoEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
            return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
        }
#endif
#ifdef VK_EXT_blend_operation_advanced
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
        }
#endif
#ifdef VK_NV_fragment_coverage_to_color
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_framebuffer_mixed_samples
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_shader_sm_builtins
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
        }
#endif
#ifdef VK_EXT_image_drm_format_modifier
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
            return sizeof(VkDrmFormatModifierPropertiesListEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
            return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
            return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
            return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
            return sizeof(VkDrmFormatModifierPropertiesList2EXT);
        }
#endif
#ifdef VK_EXT_validation_cache
        case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
            return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
        }
#endif
#ifdef VK_NV_shading_rate_image
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_ray_tracing
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
            return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
        }
#endif
#ifdef VK_NV_representative_fragment_test
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_filter_cubic
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
            return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
        }
        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
            return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
        }
#endif
#ifdef VK_EXT_external_memory_host
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
            return sizeof(VkImportMemoryHostPointerInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
        }
#endif
#ifdef VK_AMD_pipeline_compiler_control
        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
            return sizeof(VkPipelineCompilerControlCreateInfoAMD);
        }
#endif
#ifdef VK_AMD_shader_core_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
            return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
        }
#endif
#ifdef VK_AMD_memory_overallocation_behavior
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
            return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
        }
#endif
#ifdef VK_EXT_vertex_attribute_divisor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
        }
#endif
#ifdef VK_GGP_frame_token
        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
            return sizeof(VkPresentFrameTokenGGP);
        }
#endif
#ifdef VK_NV_compute_shader_derivatives
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
        }
#endif
#ifdef VK_NV_mesh_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
        }
#endif
#ifdef VK_NV_shader_image_footprint
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
        }
#endif
#ifdef VK_NV_scissor_exclusive
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
        }
#endif
#ifdef VK_INTEL_shader_integer_functions2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
            return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
        }
#endif
#ifdef VK_INTEL_performance_query
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
            return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
        }
#endif
#ifdef VK_EXT_pci_bus_info
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
        }
#endif
#ifdef VK_AMD_display_native_hdr
        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
            return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
            return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
        }
#endif
#ifdef VK_EXT_fragment_density_map
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkImportColorBufferGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
                    break;
                }
            }
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkCreateBlobGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
                    break;
                }
            }
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
            switch (rootType) {
                case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
                    return sizeof(VkImportBufferGOOGLE);
                    break;
                }
                default: {
                    return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
                    break;
                }
            }
        }
#endif
#ifdef VK_AMD_shader_core_properties2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
            return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
        }
#endif
#ifdef VK_AMD_device_coherent_memory
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
            return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
        }
#endif
#ifdef VK_EXT_shader_image_atomic_int64
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
        }
#endif
#ifdef VK_EXT_memory_budget
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
        }
#endif
#ifdef VK_EXT_memory_priority
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
            return sizeof(VkMemoryPriorityAllocateInfoEXT);
        }
#endif
#ifdef VK_NV_dedicated_allocation_image_aliasing
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
        }
#endif
#ifdef VK_EXT_buffer_device_address
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
            return sizeof(VkBufferDeviceAddressCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_validation_features
        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
            return sizeof(VkValidationFeaturesEXT);
        }
#endif
#ifdef VK_NV_cooperative_matrix
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
        }
#endif
#ifdef VK_NV_coverage_reduction_mode
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
        }
#endif
#ifdef VK_EXT_fragment_shader_interlock
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
        }
#endif
#ifdef VK_EXT_ycbcr_image_arrays
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
        }
#endif
#ifdef VK_EXT_provoking_vertex
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_full_screen_exclusive
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
            return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
            return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
            return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
        }
#endif
#ifdef VK_EXT_shader_atomic_float
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
        }
#endif
#ifdef VK_EXT_index_type_uint8
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_EXT_host_image_copy
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
            return sizeof(VkSubresourceHostMemcpySizeEXT);
        }
        case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
            return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
        }
#endif
#ifdef VK_EXT_shader_atomic_float2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
        }
#endif
#ifdef VK_EXT_surface_maintenance1
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
            return sizeof(VkSurfacePresentModeEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
            return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
        }
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
            return sizeof(VkSurfacePresentModeCompatibilityEXT);
        }
#endif
#ifdef VK_EXT_swapchain_maintenance1
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
            return sizeof(VkSwapchainPresentFenceInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainPresentModesCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
            return sizeof(VkSwapchainPresentModeInfoEXT);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
            return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
        }
#endif
#ifdef VK_NV_device_generated_commands
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
            return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
        }
#endif
#ifdef VK_NV_inherited_viewport_scissor
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
            return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
        }
#endif
#ifdef VK_EXT_texel_buffer_alignment
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_render_pass_transform
        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
            return sizeof(VkRenderPassTransformBeginInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
            return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
        }
#endif
#ifdef VK_EXT_depth_bias_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthBiasControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT: {
            return sizeof(VkDepthBiasRepresentationInfoEXT);
        }
#endif
#ifdef VK_EXT_device_memory_report
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
            return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_robustness2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
        }
#endif
#ifdef VK_EXT_custom_border_color
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
            return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
        }
#endif
#ifdef VK_NV_present_barrier
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
            return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
            return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
            return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
        }
#endif
#ifdef VK_NV_device_diagnostics_config
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
            return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
        }
#endif
#ifdef VK_NV_cuda_kernel_launch
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCudaKernelLaunchFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCudaKernelLaunchPropertiesNV);
        }
#endif
#ifdef VK_NV_low_latency
        case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
            return sizeof(VkQueryLowLatencySupportNV);
        }
#endif
#ifdef VK_EXT_descriptor_buffer
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
            return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
        }
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
            return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_graphics_pipeline_library
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
            return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
        }
#endif
#ifdef VK_AMD_shader_early_and_late_fragment_tests
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
            return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
        }
#endif
#ifdef VK_NV_fragment_shading_rate_enums
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
            return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
        }
#endif
#ifdef VK_NV_ray_tracing_motion_blur
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
            return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
        }
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
            return sizeof(VkAccelerationStructureMotionInfoNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
        }
#endif
#ifdef VK_EXT_ycbcr_2plane_444_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
        }
#endif
#ifdef VK_EXT_fragment_density_map2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
        }
#endif
#ifdef VK_QCOM_rotated_copy_commands
        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
            return sizeof(VkCopyCommandTransformInfoQCOM);
        }
#endif
#ifdef VK_EXT_image_compression_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
            return sizeof(VkImageCompressionControlEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
            return sizeof(VkImageCompressionPropertiesEXT);
        }
#endif
#ifdef VK_EXT_attachment_feedback_loop_layout
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
        }
#endif
#ifdef VK_EXT_4444_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
        }
#endif
#ifdef VK_EXT_device_fault
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
        }
#endif
#ifdef VK_ARM_rasterization_order_attachment_access
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
        }
#endif
#ifdef VK_EXT_rgba10x6_formats
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
        }
#endif
#ifdef VK_VALVE_mutable_descriptor_type
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
            return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_vertex_input_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_EXT_physical_device_drm
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
        }
#endif
#ifdef VK_EXT_device_address_binding_report
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
            return sizeof(VkDeviceAddressBindingCallbackDataEXT);
        }
#endif
#ifdef VK_EXT_depth_clip_control
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
            return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_primitive_topology_list_restart
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
        }
#endif
#ifdef VK_FUCHSIA_external_memory
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
            return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
        }
#endif
#ifdef VK_FUCHSIA_buffer_collection
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
            return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
        }
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
            return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
        }
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
            return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
        }
#endif
#ifdef VK_HUAWEI_subpass_shading
        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
            return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
            return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
        }
#endif
#ifdef VK_HUAWEI_invocation_mask
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
        }
#endif
#ifdef VK_NV_external_memory_rdma
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
        }
#endif
#ifdef VK_EXT_pipeline_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
        }
#endif
#ifdef VK_EXT_frame_boundary
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceFrameBoundaryFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: {
            return sizeof(VkFrameBoundaryEXT);
        }
#endif
#ifdef VK_EXT_multisampled_render_to_single_sampled
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
            return sizeof(VkSubpassResolvePerformanceQueryEXT);
        }
        case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
            return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
        }
#endif
#ifdef VK_EXT_color_write_enable
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
            return sizeof(VkPipelineColorWriteCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_primitives_generated_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
        }
#endif
#ifdef VK_GOOGLE_gfxstream
        case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
            return sizeof(VkImportColorBufferGOOGLE);
        }
        case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
            return sizeof(VkImportBufferGOOGLE);
        }
        case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
            return sizeof(VkCreateBlobGOOGLE);
        }
#endif
#ifdef VK_EXT_image_view_min_lod
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
            return sizeof(VkImageViewMinLodCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_multi_draw
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
        }
#endif
#ifdef VK_EXT_image_2d_view_of_3d
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
        }
#endif
#ifdef VK_EXT_shader_tile_image
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
        }
#endif
#ifdef VK_EXT_opacity_micromap
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
            return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
        }
#endif
#ifdef VK_NV_displacement_micromap
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
            return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
        }
#endif  // VK_ENABLE_BETA_EXTENSIONS
#endif
#ifdef VK_HUAWEI_cluster_culling_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
            return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
            return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
        }
#endif
#ifdef VK_EXT_border_color_swizzle
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
            return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
        }
#endif
#ifdef VK_EXT_pageable_device_local_memory
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
        }
#endif
#ifdef VK_ARM_shader_core_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
        }
#endif
#ifdef VK_ARM_scheduling_controls
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM: {
            return sizeof(VkDeviceQueueShaderCoreControlCreateInfoARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM: {
            return sizeof(VkPhysicalDeviceSchedulingControlsFeaturesARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceSchedulingControlsPropertiesARM);
        }
#endif
#ifdef VK_EXT_image_sliced_view_of_3d
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
            return sizeof(VkImageViewSlicedCreateInfoEXT);
        }
#endif
#ifdef VK_VALVE_descriptor_set_host_mapping
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
            return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
        }
#endif
#ifdef VK_EXT_depth_clamp_zero_one
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
        }
#endif
#ifdef VK_EXT_non_seamless_cube_map
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_fragment_density_map_offset
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
        }
        case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
            return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
        }
#endif
#ifdef VK_NV_copy_memory_indirect
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
        }
#endif
#ifdef VK_NV_memory_decompression
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
        }
#endif
#ifdef VK_NV_device_generated_commands_compute
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV);
        }
#endif
#ifdef VK_NV_linear_color_attachment
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
        }
#endif
#ifdef VK_EXT_image_compression_control_swapchain
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
        }
#endif
#ifdef VK_QCOM_image_processing
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
            return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
        }
#endif
#ifdef VK_EXT_nested_command_buffer
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceNestedCommandBufferFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceNestedCommandBufferPropertiesEXT);
        }
#endif
#ifdef VK_EXT_external_memory_acquire_unmodified
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT: {
            return sizeof(VkExternalMemoryAcquireUnmodifiedEXT);
        }
#endif
#ifdef VK_EXT_extended_dynamic_state3
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
        }
#endif
#ifdef VK_EXT_subpass_merge_feedback
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
            return sizeof(VkRenderPassCreationControlEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
            return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
        }
        case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
            return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
        }
#endif
#ifdef VK_LUNARG_direct_driver_loading
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
            return sizeof(VkDirectDriverLoadingListLUNARG);
        }
#endif
#ifdef VK_EXT_shader_module_identifier
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
        }
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
            return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
        }
#endif
#ifdef VK_NV_optical_flow
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
            return sizeof(VkOpticalFlowImageFormatInfoNV);
        }
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
            return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
        }
#endif
#ifdef VK_EXT_legacy_dithering
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
        }
#endif
#ifdef VK_EXT_pipeline_protected_access
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
        }
#endif
#ifdef VK_ANDROID_external_format_resolve
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID: {
            return sizeof(VkPhysicalDeviceExternalFormatResolveFeaturesANDROID);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
            return sizeof(VkPhysicalDeviceExternalFormatResolvePropertiesANDROID);
        }
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
            return sizeof(VkAndroidHardwareBufferFormatResolvePropertiesANDROID);
        }
#endif
#ifdef VK_EXT_shader_object
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
        }
#endif
#ifdef VK_QCOM_tile_properties
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
        }
#endif
#ifdef VK_SEC_amigo_profiling
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
            return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
        }
        case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
            return sizeof(VkAmigoProfilingSubmitInfoSEC);
        }
#endif
#ifdef VK_QCOM_multiview_per_view_viewports
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
        }
#endif
#ifdef VK_NV_ray_tracing_invocation_reorder
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
        }
#endif
#ifdef VK_NV_extended_sparse_address_space
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: {
            return sizeof(VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV);
        }
#endif
#ifdef VK_ARM_shader_core_builtins
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
            return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
        }
#endif
#ifdef VK_EXT_pipeline_library_group_handles
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
            return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
        }
#endif
#ifdef VK_EXT_dynamic_rendering_unused_attachments
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT);
        }
#endif
#ifdef VK_NV_low_latency2
        case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: {
            return sizeof(VkLatencySubmissionPresentIdNV);
        }
        case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: {
            return sizeof(VkSwapchainLatencyCreateInfoNV);
        }
        case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: {
            return sizeof(VkLatencySurfaceCapabilitiesNV);
        }
#endif
#ifdef VK_QCOM_multiview_per_view_render_areas
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
            return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
        }
#endif
#ifdef VK_QCOM_image_processing2
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessing2FeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: {
            return sizeof(VkPhysicalDeviceImageProcessing2PropertiesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerBlockMatchWindowCreateInfoQCOM);
        }
#endif
#ifdef VK_QCOM_filter_cubic_weights
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceCubicWeightsFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerCubicWeightsCreateInfoQCOM);
        }
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM: {
            return sizeof(VkBlitImageCubicWeightsInfoQCOM);
        }
#endif
#ifdef VK_QCOM_ycbcr_degamma
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceYcbcrDegammaFeaturesQCOM);
        }
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM: {
            return sizeof(VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM);
        }
#endif
#ifdef VK_QCOM_filter_cubic_clamp
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: {
            return sizeof(VkPhysicalDeviceCubicClampFeaturesQCOM);
        }
#endif
#ifdef VK_EXT_attachment_feedback_loop_dynamic_state
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
        }
#endif
#ifdef VK_MSFT_layered_driver
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: {
            return sizeof(VkPhysicalDeviceLayeredDriverPropertiesMSFT);
        }
#endif
#ifdef VK_NV_descriptor_pool_overallocation
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: {
            return sizeof(VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV);
        }
#endif
#ifdef VK_KHR_acceleration_structure
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
            return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
        }
#endif
#ifdef VK_KHR_ray_tracing_pipeline
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
            return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
        }
#endif
#ifdef VK_KHR_ray_query
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
            return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
        }
#endif
#ifdef VK_EXT_mesh_shader
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
            return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
        }
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
            return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
        }
#endif
        default: {
            fprintf(stderr, "Unhandled Vulkan structure type %s [%d], aborting.\n",
                    string_VkStructureType(VkStructureType(structType)), structType);
            GFXSTREAM_ABORT(::emugl::FatalError(::emugl::ABORT_REASON_OTHER));
            return static_cast<size_t>(0);
        }
    }
}

}  // namespace vk
}  // namespace gfxstream
