// 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 )
VkPhysicalDevice8BitStorageFeaturesKHR						FEATURES ( storageBuffer8BitAccess )							REQUIREMENTS ( VK_KHR_8bit_storage )
VkPhysicalDeviceVulkan11Features							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(1, 1, 0)" )
VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( VK_KHR_multiview )
VkPhysicalDeviceVariablePointersFeatures					FEATURES ( variablePointersStorageBuffer )						REQUIREMENTS ( VK_KHR_variable_pointers )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( VK_EXT_descriptor_indexing )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				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 )
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT				FEATURES ( scalarBlockLayout )									REQUIREMENTS ( VK_EXT_scalar_block_layout )
VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR		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(1, 2, 0)" )
VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR		FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( VK_KHR_shader_subgroup_extended_types )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceImagelessFramebufferFeaturesKHR 			FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( VK_KHR_imageless_framebuffer )
VkPhysicalDeviceVulkan12Features							FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceVulkan12Features							FEATURES ( uniformBufferStandardLayout )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR		FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( VK_KHR_separate_depth_stencil_layouts )
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT		FEATURES ( pipelineCreationCacheControl )						REQUIREMENTS ( VK_EXT_pipeline_creation_cache_control )
VkPhysicalDeviceVulkan12Features							FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceHostQueryResetFeaturesEXT					FEATURES ( hostQueryReset )										REQUIREMENTS ( VK_EXT_host_query_reset )
VkPhysicalDeviceVulkan12Features							FEATURES ( hostQueryReset )										REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceTimelineSemaphoreFeaturesKHR 				FEATURES ( timelineSemaphore )									REQUIREMENTS ( VK_KHR_timeline_semaphore )
VkPhysicalDeviceVulkan12Features							FEATURES ( timelineSemaphore )									REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
VkPhysicalDeviceFeatures									FEATURES ( shaderSampledImageArrayDynamicIndexing )				REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
VkPhysicalDeviceVulkan12Features							FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(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 )
VkPhysicalDeviceVulkanMemoryModelFeaturesKHR				FEATURES ( vulkanMemoryModel )									REQUIREMENTS ( VK_KHR_vulkan_memory_model )
VkPhysicalDeviceBufferDeviceAddressFeaturesKHR				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 )
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR				FEATURES ( shaderBufferInt64Atomics )							REQUIREMENTS ( VK_KHR_shader_atomic_int64 )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderBufferInt64Atomics )							REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceShaderAtomicInt64FeaturesKHR.shaderBufferInt64Atomics )
VkPhysicalDevice16BitStorageFeaturesKHR 					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(1, 2, 0)" VK_KHR_draw_indirect_count )
VkPhysicalDeviceVulkan12Features							FEATURES ( samplerMirrorClampToEdge )							REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_sampler_mirror_clamp_to_edge )
VkPhysicalDeviceVulkan12Features							FEATURES ( samplerFilterMinmax )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_EXT_sampler_filter_minmax )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderOutputViewportIndex )							REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_EXT_shader_viewport_index_layer )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderOutputLayer )									REQUIREMENTS ( "ApiVersion(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 ( physicalDeviceShaderAtomicInt64FeaturesKHR.shaderBufferInt64Atomics )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceVulkan12Features.shaderBufferInt64Atomics )
VkPhysicalDeviceFeatures									FEATURES ( shaderInt64 )										REQUIREMENTS ( physicalDeviceShaderAtomicInt64FeaturesKHR.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(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceVulkan12Features							FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceBufferDeviceAddressFeaturesKHR				FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(1, 1, 0)" VK_KHR_acceleration_structure )
VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(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 )
VkPhysicalDevicePresentIdFeaturesKHR						FEATURES ( presentId )											REQUIREMENTS ( VK_KHR_present_id )
VkPhysicalDevicePresentWaitFeaturesKHR						FEATURES ( presentWait )										REQUIREMENTS ( VK_KHR_present_wait )
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT				FEATURES ( shaderImageFloat32AtomicMinMax )							REQUIREMENTS ( VK_EXT_shader_atomic_float2 physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax )
