Features

Features describe functionality which is not supported on all implementations. Features are properties of the physical device. Features are optional, and must be explicitly enabled before use. Support for features is reported and enabled on a per-feature basis.

Features are reported via the basic VkPhysicalDeviceFeatures structure, as well as the extensible structure VkPhysicalDeviceFeatures2, which was added in the VK_KHR_get_physical_device_properties2 extension and included in Vulkan 1.1. When new features are added in future Vulkan versions or extensions, each extension should introduce one new feature structure, if needed. This structure can be added to the pNext chain of the VkPhysicalDeviceFeatures2 structure.

For convenience, new core versions of Vulkan may introduce new unified feature structures for features promoted from extensions. At the same time, the extension’s original feature structure (if any) is also promoted to the core API, and is an alias of the extension’s structure. This results in multiple names for the same feature: in the original extension’s feature structure and the promoted structure alias, in the unified feature structure. When a feature was implicitly supported and enabled in the extension, but an explicit name was added during promotion, then the extension itself acts as an alias for the feature as listed in the table below.

All aliases of the same feature in the core API must be reported consistently: either all must be reported as supported, or none of them. When a promoted extension is available, any corresponding feature aliases must be supported.

Table 64. Extension Feature Aliases
ExtensionFeature(s)
vkGetPhysicalDeviceFeaturesReports capabilities of a physical device

Fine-grained features used by a logical device must be enabled at VkDevice creation time. If a feature is enabled that the physical device does not support, VkDevice creation will fail and return VK_ERROR_FEATURE_NOT_PRESENT.

The fine-grained features are enabled by passing a pointer to the VkPhysicalDeviceFeatures structure via the pEnabledFeatures member of the VkDeviceCreateInfo structure that is passed into the vkCreateDevice call. If a member of pEnabledFeatures is VK_TRUE or VK_FALSE, then the device will be created with the indicated feature enabled or disabled, respectively. Features can also be enabled by using the VkPhysicalDeviceFeatures2 structure.

If an application wishes to enable all features supported by a device, it can simply pass in the VkPhysicalDeviceFeatures structure that was previously returned by vkGetPhysicalDeviceFeatures. To disable an individual feature, the application can set the desired member to VK_FALSE in the same structure. Setting pEnabledFeatures to NULL and not including a VkPhysicalDeviceFeatures2 in the pNext chain of VkDeviceCreateInfo is equivalent to setting all members of the structure to VK_FALSE.

Some features, such as robustBufferAccess, may incur a runtime performance cost. Application writers should carefully consider the implications of enabling all supported features.

vkGetPhysicalDeviceFeatures2Reports capabilities of a physical device
VkPhysicalDeviceFeatures2Structure describing the fine-grained features that can be supported by an implementation
VkPhysicalDeviceFeaturesStructure describing the fine-grained features that can be supported by an implementation
VkPhysicalDeviceVariablePointersFeaturesStructure describing variable pointers features that can be supported by an implementation
VkPhysicalDeviceMultiviewFeaturesStructure describing multiview features that can be supported by an implementation
VkPhysicalDeviceShaderAtomicFloatFeaturesEXTStructure describing features supported by VK_EXT_shader_atomic_float
VkPhysicalDeviceShaderAtomicFloat2FeaturesEXTStructure describing features supported by VK_EXT_shader_atomic_float2
VkPhysicalDeviceShaderAtomicInt64FeaturesStructure describing features supported by VK_KHR_shader_atomic_int64
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXTStructure describing features supported by VK_EXT_shader_image_atomic_int64
VkPhysicalDevice8BitStorageFeaturesStructure describing features supported by VK_KHR_8bit_storage
VkPhysicalDevice16BitStorageFeaturesStructure describing features supported by VK_KHR_16bit_storage
VkPhysicalDeviceShaderFloat16Int8FeaturesStructure describing features supported by VK_KHR_shader_float16_int8
VkPhysicalDeviceShaderClockFeaturesKHRStructure describing features supported by VK_KHR_shader_clock
VkPhysicalDeviceSamplerYcbcrConversionFeaturesStructure describing Y′C<subscript>B</subscript>C<subscript>R</subscript> conversion features that can be supported by an implementation
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXTStructure describing advanced blending features that can be supported by an implementation
VkPhysicalDeviceConditionalRenderingFeaturesEXTStructure describing if a secondary command buffer can be executed if conditional rendering is active in the primary command buffer
VkPhysicalDeviceMeshShaderFeaturesNVStructure describing mesh shading features that can be supported by an implementation
VkPhysicalDeviceMeshShaderFeaturesEXTStructure describing mesh shading features that can be supported by an implementation
VkPhysicalDeviceMemoryDecompressionFeaturesNVStructure describing if memory decompression is supported by an implementation
VkPhysicalDeviceDescriptorIndexingFeaturesStructure describing descriptor indexing features that can be supported by an implementation
VkPhysicalDeviceCopyMemoryIndirectFeaturesNVStructure describing indirect copy features supported by an implementation
VkPhysicalDeviceVertexAttributeDivisorFeaturesKHRStructure describing if fetching of vertex attribute may be repeated for instanced rendering
VkPhysicalDeviceASTCDecodeFeaturesEXTStructure describing ASTC decode mode features
VkPhysicalDeviceTransformFeedbackFeaturesEXTStructure describing transform feedback features that can be supported by an implementation
VkPhysicalDeviceVulkanMemoryModelFeaturesStructure describing features supported by the memory model
VkPhysicalDeviceInlineUniformBlockFeaturesStructure describing inline uniform block features that can be supported by an implementation
VkPhysicalDeviceRepresentativeFragmentTestFeaturesNVStructure describing the representative fragment test features that can be supported by an implementation
VkPhysicalDeviceExclusiveScissorFeaturesNVStructure describing exclusive scissor features that can be supported by an implementation
VkPhysicalDeviceCornerSampledImageFeaturesNVStructure describing corner sampled image features that can be supported by an implementation
VkPhysicalDeviceComputeShaderDerivativesFeaturesKHRStructure describing compute shader derivative features that can be supported by an implementation
VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHRStructure describing barycentric support in fragment shaders that can be supported by an implementation
VkPhysicalDeviceShaderImageFootprintFeaturesNVStructure describing shader image footprint features that can be supported by an implementation
VkPhysicalDeviceShadingRateImageFeaturesNVStructure describing shading rate image features that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMapFeaturesEXTStructure describing fragment density map features that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMap2FeaturesEXTStructure describing additional fragment density map features that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOMStructure describing fragment density map offset features that can be supported by an implementation
VkPhysicalDeviceInvocationMaskFeaturesHUAWEIStructure describing invocation mask features that can be supported by an implementation
VkPhysicalDeviceScalarBlockLayoutFeaturesStructure indicating support for scalar block layouts
VkPhysicalDeviceUniformBufferStandardLayoutFeaturesStructure indicating support for std430-like packing in uniform buffers
VkPhysicalDeviceDepthClipEnableFeaturesEXTStructure indicating support for explicit enable of depth clip
VkPhysicalDeviceMemoryPriorityFeaturesEXTStructure describing memory priority features that can be supported by an implementation
VkPhysicalDeviceBufferDeviceAddressFeaturesStructure describing buffer address features that can be supported by an implementation
VkPhysicalDeviceBufferDeviceAddressFeaturesEXTStructure describing buffer address features that can be supported by an implementation
VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVStructure describing dedicated allocation image aliasing features that can be supported by an implementation
VkPhysicalDeviceImagelessFramebufferFeaturesStructure indicating support for imageless framebuffers
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXTStructure describing fragment shader interlock features that can be supported by an implementation
VkPhysicalDeviceCooperativeMatrixFeaturesNVStructure describing cooperative matrix features that can be supported by an implementation
VkPhysicalDeviceCooperativeMatrixFeaturesKHRStructure describing cooperative matrix features that can be supported by an implementation
VkPhysicalDeviceYcbcrImageArraysFeaturesEXTStructure describing extended Y′C<subscript>B</subscript>C<subscript>R</subscript> image creation features that can be supported by an implementation
VkPhysicalDeviceHostQueryResetFeaturesStructure describing whether queries can be reset from the host
VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELStructure describing shader integer functions that can be supported by an implementation
VkPhysicalDeviceCoverageReductionModeFeaturesNVStructure describing the coverage reduction mode features that can be supported by an implementation
VkPhysicalDeviceTimelineSemaphoreFeaturesStructure describing timeline semaphore features that can be supported by an implementation
VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNXStructure describing QNX Screen Buffer features that can be supported by an implementation
VkPhysicalDeviceIndexTypeUint8FeaturesKHRStructure describing whether uint8 index type can be used
VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXTStructure describing whether list type primitives can support primitive restart
VkPhysicalDeviceShaderSMBuiltinsFeaturesNVStructure describing the shader SM Builtins features that can be supported by an implementation
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesStructure describing whether the implementation can do depth and stencil image barriers separately
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHRStructure describing whether pipeline executable properties are available
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesStructure describing the shader demote to helper invocations features that can be supported by an implementation
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXTStructure describing the texel buffer alignment features that can be supported by an implementation
VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTStructure describing if dynamic feedback loops can be used
VkPhysicalDeviceLegacyVertexAttributesFeaturesEXTStructure describing compatibility features for vertex attributes
VkPhysicalDeviceTextureCompressionASTCHDRFeaturesStructure describing ASTC HDR features that can be supported by an implementation
VkPhysicalDeviceLineRasterizationFeaturesKHRStructure describing the line rasterization features that can be supported by an implementation
VkPhysicalDeviceSubgroupSizeControlFeaturesStructure describing the subgroup size control features that can be supported by an implementation
VkPhysicalDeviceCoherentMemoryFeaturesAMDStructure describing whether device coherent memory can be supported by an implementation
VkPhysicalDeviceAccelerationStructureFeaturesKHRStructure describing the acceleration structure features that can be supported by an implementation
VkPhysicalDeviceRayTracingPipelineFeaturesKHRStructure describing the ray tracing features that can be supported by an implementation
VkPhysicalDeviceRayQueryFeaturesKHRStructure describing the ray query features that can be supported by an implementation
VkPhysicalDeviceRayTracingMaintenance1FeaturesKHRStructure describing the ray tracing maintenance features that can be supported by an implementation
VkPhysicalDeviceVideoMaintenance1FeaturesKHRStructure describing the video maintenance features that can be supported by an implementation
VkPhysicalDeviceExtendedDynamicStateFeaturesEXTStructure describing what extended dynamic state can be used
VkPhysicalDeviceExtendedDynamicState2FeaturesEXTStructure describing what extended dynamic state can be used
VkPhysicalDeviceExtendedDynamicState3FeaturesEXTStructure describing what extended dynamic state is supported by the implementation
VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNVStructure describing the device-generated commands features that can be supported by an implementation
VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVStructure describing the device-generated compute features that can be supported by an implementation
VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXTStructure describing the device-generated compute features that can be supported by an implementation
VkPhysicalDeviceDiagnosticsConfigFeaturesNVStructure describing the device-generated diagnostic configuration features that can be supported by an implementation
VkPhysicalDeviceDeviceMemoryReportFeaturesEXTStructure describing whether device memory report callback can be supported by an implementation
VkPhysicalDeviceGlobalPriorityQueryFeaturesKHRStructure describing whether global priority query can be supported by an implementation
VkPhysicalDevicePipelineCreationCacheControlFeaturesStructure describing whether pipeline cache control can be supported by an implementation
VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesStructure describing support for zero initialization of workgroup memory by an implementation
VkPhysicalDevicePrivateDataFeaturesStructure specifying physical device support
VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRStructure describing support for shader subgroup uniform control flow by an implementation
VkPhysicalDeviceRobustness2FeaturesEXTStructure describing the out-of-bounds behavior for an implementation
VkPhysicalDeviceImageRobustnessFeaturesStructure describing the out-of-bounds behavior for an implementation
VkPhysicalDeviceShaderTerminateInvocationFeaturesStructure describing support for the SPIR-V SPV_KHR_terminate_invocation extension
VkPhysicalDeviceCustomBorderColorFeaturesEXTStructure describing whether custom border colors can be supported by an implementation
VkPhysicalDeviceBorderColorSwizzleFeaturesEXTStructure describing whether samplers with custom border colors require the component swizzle specified in order to have defined behavior
VkPhysicalDevicePortabilitySubsetFeaturesKHRStructure describing the features that may not be supported by an implementation of the Vulkan 1.0 Portability Subset
VkPhysicalDevicePerformanceQueryFeaturesKHRStructure describing performance query support for an implementation
VkPhysicalDevice4444FormatsFeaturesEXTStructure describing additional 4444 formats supported by an implementation
VkPhysicalDeviceMutableDescriptorTypeFeaturesEXTStructure describing whether the mutable descriptor type is supported
VkPhysicalDeviceDepthClipControlFeaturesEXTStructure describing additional depth clip control supported by an implementation
VkPhysicalDeviceDepthClampControlFeaturesEXTStructure describing additional depth clamp control supported by an implementation
VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRStructure describing the workgroup storage explicit layout features that can be supported by an implementation
VkPhysicalDeviceSynchronization2FeaturesStructure describing whether the implementation supports v2 synchronization commands
VkPhysicalDeviceVertexInputDynamicStateFeaturesEXTStructure describing whether the dynamic vertex input state can be used
VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXTStructure describing support for primitives generated query
VkPhysicalDeviceFragmentShadingRateFeaturesKHRStructure indicating support for variable rate fragment shading
VkPhysicalDeviceLegacyDitheringFeaturesEXTStructure describing support for legacy dithering
VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNVStructure indicating support for fragment shading rate enums
VkPhysicalDeviceInheritedViewportScissorFeaturesNVStructure describing the viewport scissor inheritance behavior for an implementation
VkPhysicalDevicePipelineProtectedAccessFeaturesEXTStructure describing support for specifying protected access on individual pipelines
VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTStructure describing whether the implementation supports additional 2-plane 444 Y′C<subscript>B</subscript>C<subscript>R</subscript> formats
VkPhysicalDeviceColorWriteEnableFeaturesEXTStructure describing whether writes to color attachments can be enabled and disabled dynamically
VkPhysicalDevicePipelinePropertiesFeaturesEXTStructure describing what pipeline properties are supported
VkPhysicalDeviceProvokingVertexFeaturesEXTStructure describing the provoking vertex features that can be supported by an implementation
VkPhysicalDeviceDescriptorBufferFeaturesEXTStructure describing the descriptor buffer features that can be supported by an implementation
VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXTStructure describing whether the implementation supports pageable device-local memory
VkPhysicalDeviceMultiDrawFeaturesEXTStructure describing whether the implementation supports multi draw functionality
VkPhysicalDeviceRayTracingMotionBlurFeaturesNVStructure describing the ray tracing motion blur features that can be supported by an implementation
VkPhysicalDeviceOpacityMicromapFeaturesEXTStructure describing the ray tracing opacity micromap features that can be supported by an implementation
VkPhysicalDeviceDisplacementMicromapFeaturesNVStructure describing the ray tracing displacement micromap features that can be supported by an implementation
VkPhysicalDeviceRayTracingValidationFeaturesNVStructure describing the ray tracing validation features that can be supported by an implementation
VkPhysicalDeviceSubpassShadingFeaturesHUAWEIStructure describing whether subpass shading is enabled
VkPhysicalDeviceExternalMemoryRDMAFeaturesNVStructure describing the external memory RDMA features supported by the implementation
VkPhysicalDevicePresentIdFeaturesKHRStructure indicating support for present id
VkPhysicalDevicePresentWaitFeaturesKHRStructure indicating support for present wait
VkPhysicalDeviceHostImageCopyFeaturesEXTStructure indicating support for copies to or from images from host memory
VkPhysicalDevicePresentBarrierFeaturesNVStructure indicating support for VK_NV_present_barrier extension
VkPhysicalDeviceShaderIntegerDotProductFeaturesStructure describing integer dot product features that can be supported by an implementation
VkPhysicalDeviceMaintenance4FeaturesStructure describing whether the implementation supports maintenance4 functionality
VkPhysicalDeviceMaintenance5FeaturesKHRStructure describing whether the implementation supports maintenance5 functionality
VkPhysicalDeviceMaintenance6FeaturesKHRStructure describing whether the implementation supports maintenance6 functionality
VkPhysicalDeviceMaintenance7FeaturesKHRStructure describing whether the implementation supports maintenance7 functionality
VkPhysicalDeviceDynamicRenderingFeaturesStructure indicating support for dynamic render pass instances
VkPhysicalDeviceRGBA10X6FormatsFeaturesEXTStructure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementation
VkPhysicalDevicePipelineRobustnessFeaturesEXTStructure describing whether an implementation supports robustness requests on a per-pipeline stage granularity
VkPhysicalDeviceImageViewMinLodFeaturesEXTStructure describing whether clamping the min LOD of an image view is supported by the implementation
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTStructure describing whether rasterization order attachment access can be supported by an implementation
VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXTStructure describing whether subpass merging feedback can be supported by the implementation
VkPhysicalDeviceLinearColorAttachmentFeaturesNVStructure describing whether Linear Color Attachment rendering is supported by the implementation
VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTStructure indicating support for a render feedback loop image layout
VkPhysicalDeviceNestedCommandBufferFeaturesEXTStructure describing whether nested command buffers are supported by the implementation
VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXTStructure describing support for graphics pipeline libraries
VkPhysicalDevicePipelineBinaryFeaturesKHRStructure describing support for pipeline binaries
VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTStructure describing whether multisampled rendering to single-sampled attachments is supported
VkPhysicalDeviceImage2DViewOf3DFeaturesEXTStructure describing whether single-slice 2D views of 3D images can be used in image descriptors
VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXTStructure describing whether slice-based views of 3D images can be used in storage image descriptors
VkPhysicalDeviceImageCompressionControlFeaturesEXTStructure describing whether image compression controls can be supported by an implementation
VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXTStructure describing whether per-swapchain image compression controls can be supported by an implementation
VkPhysicalDeviceRayTracingPositionFetchFeaturesKHRStructure describing support for fetching vertex positions of hit triangles
VkPhysicalDeviceShaderFloatControls2FeaturesKHRStructure describing shader float controls 2 features that can be supported by an implementation
VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDStructure describing whether early and late fragment tests can be supported by an implementation
VkPhysicalDeviceAntiLagFeaturesAMDStructure describing whether VK_AMD_anti_lag can be supported by an implementation.
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXTStructure describing features to disable seamless cube maps
VkPhysicalDeviceShaderModuleIdentifierFeaturesEXTStructure describing whether querying and providing an identifier of a shader module is supported by the implementation
VkPhysicalDeviceTilePropertiesFeaturesQCOMStructure describing tile properties features that can be supported by an implementation
VkPhysicalDeviceImageProcessingFeaturesQCOMStructure describing image processing features that can be supported by an implementation
VkPhysicalDeviceImageProcessing2FeaturesQCOMStructure describing image processing features that can be supported by an implementation
VkPhysicalDeviceDepthClampZeroOneFeaturesEXTStructure describing feature to control zero to one depth clamping
VkPhysicalDeviceShaderTileImageFeaturesEXTStructure describing tile image features supported by the implementation
VkPhysicalDeviceDepthBiasControlFeaturesEXTStructure indicating support for depth bias scaling and representation control
VkPhysicalDeviceAddressBindingReportFeaturesEXTStructure describing the virtual allocation reporting feature supported by an implementation
VkPhysicalDeviceOpticalFlowFeaturesNVStructure describing the optical flow features supported by the implementation
VkPhysicalDeviceFaultFeaturesEXTStructure indicating support for device fault reporting
VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTStructure describing whether querying shader group handles from a pipeline library is supported by the implementation
VkPhysicalDeviceShaderObjectFeaturesEXTStructure describing whether shader objects can be supported by an implementation
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARMStructure describing the shader core builtins features that can be supported by an implementation
VkPhysicalDeviceFrameBoundaryFeaturesEXTStructure describing the frame boundary features that can be supported by an implementation
VkPhysicalDeviceSwapchainMaintenance1FeaturesEXTStructure describing whether implementation supports swapchain maintenance1 functionality
VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXTStructure describing support for VK_PRESENT_MODE_FIFO_LATEST_READY_EXT
VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTStructure describing the dynamic rendering unused attachment features that can be supported by an implementation
VkPhysicalDeviceRayTracingInvocationReorderFeaturesNVStructure describing feature to control ray tracing invocation reordering
VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNVStructure describing feature to use extended sparse address space
VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMStructure describing multiview per view viewports features that can be supported by an implementation
VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMStructure describing multiview per view render areas features that can be supported by an implementation
VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEIStructure describing whether cluster culling shader is enabled
VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIStructure describing whether cluster culling shader support VRS
VkPhysicalDeviceShaderEnqueueFeaturesAMDXStructure describing whether shader enqueue within execution graphs are supported by the implementation
VkPhysicalDeviceCubicClampFeaturesQCOMStructure describing cubic clamp features that can be supported by an implementation
VkPhysicalDeviceYcbcrDegammaFeaturesQCOMStructure describing Y′C<subscript>B</subscript>C<subscript>R</subscript> degamma features that can be supported by an implementation
VkPhysicalDeviceCubicWeightsFeaturesQCOMStructure describing cubic weight selection features that can be supported by an implementation
VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNVStructure describing feature to allow descriptor pool overallocation
VkPhysicalDevicePerStageDescriptorSetFeaturesNVStructure describing feature to allow descriptor set layout bindings to be per-stage
VkPhysicalDeviceCudaKernelLaunchFeaturesNVStructure describing whether cuda kernel launch is supported by the implementation
VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHRStructure describing support for shader maximal reconvergence by an implementation
VkPhysicalDeviceExternalFormatResolveFeaturesANDROIDStructure describing whether external format resolves are supported
VkPhysicalDeviceSchedulingControlsFeaturesARMStructure describing scheduling controls features that can be supported by an implementation
VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMGStructure describing relaxed line rasterization features that can be supported by an implementation
VkPhysicalDeviceRenderPassStripedFeaturesARMStructure describing whether striped rendering can be supported by an implementation
VkPhysicalDeviceShaderSubgroupRotateFeaturesKHRStructure describing whether subgroup rotation is enabled
VkPhysicalDeviceShaderExpectAssumeFeaturesKHRStructure describing shader expect assume features that can be supported by an implementation
VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHRStructure indicating support for local reads in dynamic render pass instances
VkPhysicalDeviceShaderQuadControlFeaturesKHRStructure describing whether quad scopes are supported by the implementation
VkPhysicalDeviceMapMemoryPlacedFeaturesEXTStructure describing placed memory map features that can be supported by an implementation
VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNVStructure describing features supported by VK_NV_shader_atomic_float16_vector
VkPhysicalDeviceRawAccessChainsFeaturesNVStructure describing shader raw access chains features that can be supported by an implementation
VkPhysicalDeviceCommandBufferInheritanceFeaturesNVStructure describing whether the command buffer inheritance feature is supported by an implementation
VkPhysicalDeviceImageAlignmentControlFeaturesMESAStructure describing features supported by VK_MESA_image_alignment_control
VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXTStructure describing whether support for replicated composites in SPIR-V is enabled
VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRStructure describing support for VK_KHR_shader_relaxed_extended_instruction an implementation

Feature Requirements

All Vulkan graphics implementations must support the following features:

{generated}/featurerequirements.adoc * storageBuffer8BitAccess, if uniformAndStorageBuffer8BitAccess is enabled. * shaderInt64, if the shaderSharedInt64Atomics or shaderBufferInt64Atomics features are supported. * storageBuffer16BitAccess, if uniformAndStorageBuffer16BitAccess is enabled. * shaderImageFloat32Atomics, if the sparseImageFloat32Atomics feature is supported. * shaderImageFloat32AtomicAdd, if the sparseImageFloat32AtomicAdd feature is supported. * shaderImageFloat32AtomicMinMax, if the sparseImageFloat32AtomicMinMax feature is supported. * primitiveFragmentShadingRate if primitiveFragmentShadingRateMeshShader feature is supported. * fragmentShaderSampleInterlock or fragmentShaderPixelInterlock or fragmentShaderShadingRateInterlock, if the VK_EXT_fragment_shader_interlock extension is supported. * rectangularLines or bresenhamLines or smoothLines or stippledRectangularLines or stippledBresenhamLines or stippledSmoothLines, if the VK_KHR_line_rasterization extension is supported. * rectangularLines or bresenhamLines or smoothLines or stippledRectangularLines or stippledBresenhamLines or stippledSmoothLines, if the VK_EXT_line_rasterization extension is supported. * tessellationShader, if the extendedDynamicState3TessellationDomainOrigin feature is supported. * depthClamp, if the extendedDynamicState3DepthClampEnable feature is supported. * fillModeNonSolid, if the extendedDynamicState3PolygonMode feature is supported. * alphaToOne, if the extendedDynamicState3AlphaToOneEnable feature is supported. * logicOp, if the extendedDynamicState3LogicOpEnable feature is supported. * geometryStreams, if the extendedDynamicState3RasterizationStream feature is supported. * VK_EXT_conservative_rasterization extension, if the extendedDynamicState3ConservativeRasterizationMode feature is supported. * VK_EXT_conservative_rasterization extension, if the extendedDynamicState3ExtraPrimitiveOverestimationSize feature is supported. * VK_EXT_sample_locations extension, if the extendedDynamicState3SampleLocationsEnable feature is supported. * VK_EXT_blend_operation_advanced extension, if the extendedDynamicState3ColorBlendAdvanced feature is supported. * provokingVertexLast, if the extendedDynamicState3ProvokingVertexMode feature is supported. * VK_KHR_line_rasterization or VK_EXT_line_rasterization extension, if the extendedDynamicState3LineRasterizationMode feature is supported. * VK_KHR_line_rasterization or VK_EXT_line_rasterization extension, if the extendedDynamicState3LineStippleEnable feature is supported. * depthClipControl, if the extendedDynamicState3DepthClipNegativeOneToOne feature is supported. * VK_NV_clip_space_w_scaling extension, if the extendedDynamicState3ViewportWScalingEnable feature is supported. * VK_NV_viewport_swizzle extension, if the extendedDynamicState3ViewportSwizzle feature is supported. * VK_NV_fragment_coverage_to_color extension, if the extendedDynamicState3CoverageToColorEnable feature is supported. * VK_NV_fragment_coverage_to_color extension, if the extendedDynamicState3CoverageToColorLocation feature is supported. * VK_NV_framebuffer_mixed_samples extension, if the extendedDynamicState3CoverageModulationMode feature is supported. * VK_NV_framebuffer_mixed_samples extension, if the extendedDynamicState3CoverageModulationTableEnable feature is supported. * VK_NV_framebuffer_mixed_samples extension, if the extendedDynamicState3CoverageModulationTable feature is supported. * coverageReductionMode, if the extendedDynamicState3CoverageReductionMode feature is supported. * representativeFragmentTest, if the extendedDynamicState3RepresentativeFragmentTestEnable feature is supported. * shadingRateImage, if the extendedDynamicState3ShadingRateImageEnable feature is supported. * Either shaderFloat16 or shaderInt8 if VK_KHR_shader_float16_int8 is supported.

All other features defined in the Specification are optional.