// This is manually created file used by gen_framework.py.
// It contains list of mandatory features required to
// generate code for cts. Currently every line contains:
// * name of structure containing physical device featurs
// * name of attribute that is mandatory
// * structure type enum
// * required extensions that enable specified feature

VkPhysicalDeviceFeatures									FEATURES ( robustBufferAccess )									REQUIREMENTS ()
VkPhysicalDeviceFeatures									FEATURES ( shaderSampledImageArrayDynamicIndexing )				REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDevice8BitStorageFeatures							FEATURES ( storageBuffer8BitAccess )							REQUIREMENTS ( VK_KHR_8bit_storage )
VkPhysicalDeviceVulkan11Features							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( VK_KHR_multiview )
VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceVariablePointersFeatures					FEATURES ( variablePointersStorageBuffer )						REQUIREMENTS ( VK_KHR_variable_pointers )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeatures					FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceInlineUniformBlockFeaturesEXT				FEATURES ( inlineUniformBlock )									REQUIREMENTS ( VK_EXT_inline_uniform_block )
VkPhysicalDeviceInlineUniformBlockFeaturesEXT				FEATURES ( descriptorBindingInlineUniformBlockUpdateAfterBind )	REQUIREMENTS ( VK_EXT_inline_uniform_block VK_EXT_descriptor_indexing )
VkPhysicalDeviceScalarBlockLayoutFeatures					FEATURES ( scalarBlockLayout )									REQUIREMENTS ( VK_EXT_scalar_block_layout )
VkPhysicalDeviceUniformBufferStandardLayoutFeatures			FEATURES ( uniformBufferStandardLayout )						REQUIREMENTS ( VK_KHR_uniform_buffer_standard_layout )
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR		FEATURES ( pipelineExecutableInfo )								REQUIREMENTS ( VK_KHR_pipeline_executable_properties )
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT				FEATURES ( subgroupSizeControl )								REQUIREMENTS ( VK_EXT_subgroup_size_control )
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT				FEATURES ( computeFullSubgroups )								REQUIREMENTS ( VK_EXT_subgroup_size_control )
VkPhysicalDeviceVulkan12Features							FEATURES ( subgroupBroadcastDynamicId )							REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures			FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( VK_KHR_shader_subgroup_extended_types )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceImagelessFramebufferFeatures 				FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( VK_KHR_imageless_framebuffer )
VkPhysicalDeviceVulkan12Features							FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceVulkan12Features							FEATURES ( uniformBufferStandardLayout )						REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures			FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( VK_KHR_separate_depth_stencil_layouts )
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT		FEATURES ( pipelineCreationCacheControl )						REQUIREMENTS ( VK_EXT_pipeline_creation_cache_control )
VkPhysicalDeviceVulkan12Features							FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceHostQueryResetFeatures						FEATURES ( hostQueryReset )										REQUIREMENTS ( VK_EXT_host_query_reset )
VkPhysicalDeviceVulkan12Features							FEATURES ( hostQueryReset )										REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )
VkPhysicalDeviceTimelineSemaphoreFeatures 					FEATURES ( timelineSemaphore )									REQUIREMENTS ( VK_KHR_timeline_semaphore )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceVulkan12Features							FEATURES ( timelineSemaphore )									REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceFeatures									FEATURES ( shaderSampledImageArrayDynamicIndexing )				REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT		FEATURES ( textureCompressionASTC_HDR )							REQUIREMENTS ( VK_EXT_texture_compression_astc_hdr )
VkPhysicalDeviceDepthClipEnableFeaturesEXT					FEATURES ( depthClipEnable )									REQUIREMENTS ( VK_EXT_depth_clip_enable )
VkPhysicalDeviceMemoryPriorityFeaturesEXT					FEATURES ( memoryPriority )										REQUIREMENTS ( VK_EXT_memory_priority )
VkPhysicalDeviceYcbcrImageArraysFeaturesEXT					FEATURES ( ycbcrImageArrays )									REQUIREMENTS ( VK_EXT_ycbcr_image_arrays )
VkPhysicalDeviceIndexTypeUint8FeaturesEXT					FEATURES ( indexTypeUint8 )										REQUIREMENTS ( VK_EXT_index_type_uint8 )
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT	FEATURES ( shaderDemoteToHelperInvocation )						REQUIREMENTS ( VK_EXT_shader_demote_to_helper_invocation )
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT				FEATURES ( texelBufferAlignment )								REQUIREMENTS ( VK_EXT_texel_buffer_alignment )
VkPhysicalDeviceVulkanMemoryModelFeatures					FEATURES ( vulkanMemoryModel )									REQUIREMENTS ( VK_KHR_vulkan_memory_model )
VkPhysicalDeviceBufferDeviceAddressFeatures					FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( VK_KHR_buffer_device_address )
VkPhysicalDevicePerformanceQueryFeaturesKHR					FEATURES ( performanceCounterQueryPools )						REQUIREMENTS ( VK_KHR_performance_query )
VkPhysicalDeviceTransformFeedbackFeaturesEXT				FEATURES ( transformFeedback )									REQUIREMENTS ( VK_EXT_transform_feedback )
VkPhysicalDeviceConditionalRenderingFeaturesEXT				FEATURES ( conditionalRendering )								REQUIREMENTS ( VK_EXT_conditional_rendering )
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT			FEATURES ( vertexAttributeInstanceRateDivisor )					REQUIREMENTS ( VK_EXT_vertex_attribute_divisor )
VkPhysicalDeviceFragmentDensityMapFeaturesEXT				FEATURES ( fragmentDensityMap )									REQUIREMENTS ( VK_EXT_fragment_density_map )
VkPhysicalDeviceShaderClockFeaturesKHR						FEATURES ( shaderSubgroupClock )								REQUIREMENTS ( VK_KHR_shader_clock )
VkPhysicalDeviceShaderAtomicInt64Features					FEATURES ( shaderBufferInt64Atomics )							REQUIREMENTS ( VK_KHR_shader_atomic_int64 )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderBufferInt64Atomics )							REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" physicalDeviceShaderAtomicInt64Features.shaderBufferInt64Atomics )
VkPhysicalDevice16BitStorageFeatures						FEATURES ( storageBuffer16BitAccess )							REQUIREMENTS ( VK_KHR_16bit_storage )
VkPhysicalDeviceShaderFloat16Int8Features					FEATURES ( shaderFloat16 shaderInt8 )							REQUIREMENTS ( VK_KHR_shader_float16_int8 )
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT			FEATURES ( fragmentShaderSampleInterlock fragmentShaderPixelInterlock fragmentShaderShadingRateInterlock )						REQUIREMENTS ( VK_EXT_fragment_shader_interlock )
VkPhysicalDeviceLineRasterizationFeaturesEXT				FEATURES ( rectangularLines bresenhamLines smoothLines stippledRectangularLines stippledBresenhamLines stippledSmoothLines )	REQUIREMENTS ( VK_EXT_line_rasterization )
VkPhysicalDeviceSynchronization2FeaturesKHR 				FEATURES ( synchronization2 )									REQUIREMENTS ( VK_KHR_synchronization2 )
VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR			FEATURES ( samplerYcbcrConversion )								REQUIREMENTS ( VK_KHR_sampler_ycbcr_conversion )
VkPhysicalDeviceVulkan12Features							FEATURES ( drawIndirectCount )									REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_draw_indirect_count )
VkPhysicalDeviceVulkan12Features							FEATURES ( samplerMirrorClampToEdge )							REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_sampler_mirror_clamp_to_edge )
VkPhysicalDeviceVulkan12Features							FEATURES ( samplerFilterMinmax )								REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_EXT_sampler_filter_minmax )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderOutputViewportIndex )							REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_EXT_shader_viewport_index_layer )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderOutputLayer )									REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_EXT_shader_viewport_index_layer )
VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR		FEATURES ( shaderTerminateInvocation )							REQUIREMENTS ( VK_KHR_shader_terminate_invocation )
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT			FEATURES ( shaderImageInt64Atomics )							REQUIREMENTS ( VK_EXT_shader_image_atomic_int64 )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( VK_EXT_shader_image_atomic_int64 )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceShaderAtomicInt64Features.shaderBufferInt64Atomics )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceVulkan12Features.shaderBufferInt64Atomics )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceShaderAtomicInt64Features.shaderSharedInt64Atomics )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceVulkan12Features.shaderSharedInt64Atomics )
VkPhysicalDevice4444FormatsFeaturesEXT						FEATURES ( formatA4R4G4B4 )										REQUIREMENTS ( VK_EXT_4444_formats )
VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR	FEATURES ( shaderZeroInitializeWorkgroupMemory )				REQUIREMENTS ( VK_KHR_zero_initialize_workgroup_memory )
VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR	FEATURES ( workgroupMemoryExplicitLayout workgroupMemoryExplicitLayoutScalarBlockLayout workgroupMemoryExplicitLayout8BitAccess workgroupMemoryExplicitLayout16BitAccess )		    REQUIREMENTS ( VK_KHR_workgroup_memory_explicit_layout )
VkPhysicalDeviceAccelerationStructureFeaturesKHR			FEATURES ( accelerationStructure  )								REQUIREMENTS ( VK_KHR_acceleration_structure )
VkPhysicalDeviceAccelerationStructureFeaturesKHR			FEATURES ( descriptorBindingAccelerationStructureUpdateAfterBind )	REQUIREMENTS ( VK_KHR_acceleration_structure )
VkPhysicalDeviceFeatures									FEATURES ( shaderSampledImageArrayDynamicIndexing )				REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( "ApiVersion(0, 1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceBufferDeviceAddressFeaturesKHR				FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(0, 1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceRayTracingPipelineFeaturesKHR				FEATURES ( rayTracingPipeline rayTracingPipelineTraceRaysIndirect)	REQUIREMENTS ( VK_KHR_ray_tracing_pipeline )
VkPhysicalDeviceRayTracingPipelineFeaturesKHR				FEATURES ( rayTraversalPrimitiveCulling )						REQUIREMENTS ( VK_KHR_ray_tracing_pipeline VK_KHR_ray_query )
VkPhysicalDeviceRayQueryFeaturesKHR							FEATURES ( rayQuery )											REQUIREMENTS ( VK_KHR_ray_query )
VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT			FEATURES ( vertexInputDynamicState )							REQUIREMENTS ( VK_EXT_vertex_input_dynamic_state  )
VkPhysicalDeviceColorWriteEnableFeaturesEXT					FEATURES ( colorWriteEnable )									REQUIREMENTS ( VK_EXT_color_write_enable )
VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT			FEATURES ( ycbcr2plane444Formats )								REQUIREMENTS ( VK_EXT_ycbcr_2plane_444_formats )
VkPhysicalDeviceExtendedDynamicState2FeaturesEXT			FEATURES ( extendedDynamicState2 )								REQUIREMENTS ( VK_EXT_extended_dynamic_state2 )
VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE			FEATURES ( mutableDescriptorType )								REQUIREMENTS ( VK_VALVE_mutable_descriptor_type )
VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT				FEATURES ( globalPriorityQuery )								REQUIREMENTS ( VK_EXT_global_priority_query )
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT			FEATURES ( shaderImageInt64Atomics )							REQUIREMENTS ( VK_EXT_shader_image_atomic_int64 physicalDeviceShaderImageAtomicInt64FeaturesEXT.sparseImageInt64Atomics )
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT				FEATURES ( shaderImageFloat32Atomics )							REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32Atomics )
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT				FEATURES ( shaderImageFloat32AtomicAdd )						REQUIREMENTS ( VK_EXT_shader_atomic_float physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32AtomicAdd )
VkPhysicalDeviceMultiDrawFeaturesEXT						FEATURES ( multiDraw )											REQUIREMENTS ( VK_EXT_multi_draw )
VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR	FEATURES ( shaderSubgroupUniformControlFlow )					REQUIREMENTS ( VK_KHR_shader_subgroup_uniform_control_flow )
VkPhysicalDeviceVulkan12Features							FEATURES ( vulkanMemoryModel )									REQUIREMENTS ( "ApiVersion(1, 1, 0, 0)" )	MANDATORY_VARIANT: VULKANSC
VkPhysicalDevicePresentIdFeaturesKHR						FEATURES ( presentId )											REQUIREMENTS ( VK_KHR_present_id )	MANDATORY_VARIANT: VULKAN
VkPhysicalDevicePresentWaitFeaturesKHR						FEATURES ( presentWait )										REQUIREMENTS ( VK_KHR_present_wait )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT				FEATURES ( shaderImageFloat32AtomicMinMax )						REQUIREMENTS ( VK_EXT_shader_atomic_float2 physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR			FEATURES ( shaderIntegerDotProduct )							REQUIREMENTS ( VK_KHR_shader_integer_dot_product )	MANDATORY_VARIANT: VULKAN
VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT		FEATURES ( primitiveTopologyListRestart )						REQUIREMENTS ( VK_EXT_primitive_topology_list_restart )	MANDATORY_VARIANT: VULKAN
VkPhysicalDeviceBorderColorSwizzleFeaturesEXT				FEATURES ( borderColorSwizzle )									REQUIREMENTS ( VK_EXT_border_color_swizzle )	MANDATORY_VARIANT: VULKAN
