// 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 )
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)" )
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 )
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 )
