Limits

Limits are implementation-dependent minimums, maximums, and other device characteristics that an application may need to be aware of.

Limits are reported via the basic VkPhysicalDeviceLimits structure as well as the extensible structure VkPhysicalDeviceProperties2, which was added in VK_KHR_get_physical_device_properties2 and included in Vulkan 1.1. When limits are added in future Vulkan versions or extensions, each extension should introduce one new limit structure, if needed. This structure can be added to the pNext chain of the VkPhysicalDeviceProperties2 structure.
VkPhysicalDeviceLimitsStructure reporting implementation-dependent physical device limits
VkSampleCountFlagBitsBitmask specifying sample counts supported for an image used for storage operations
VkSampleCountFlagsBitmask of VkSampleCountFlagBits
VkPhysicalDevicePushDescriptorPropertiesStructure describing push descriptor limits that can be supported by an implementation
VkPhysicalDeviceMultiviewPropertiesStructure describing multiview limits that can be supported by an implementation
VkPhysicalDeviceFloatControlsPropertiesStructure describing properties supported by VK_KHR_shader_float_controls
VkShaderFloatControlsIndependenceBitmask specifying whether, and how, shader float controls can be set separately
VkPhysicalDeviceDiscardRectanglePropertiesEXTStructure describing discard rectangle limits that can be supported by an implementation
VkPhysicalDeviceSampleLocationsPropertiesEXTStructure describing sample location limits that can be supported by an implementation
VkPhysicalDeviceLegacyVertexAttributesPropertiesEXTStructure describing properties for legacy vertex attributes
VkPhysicalDeviceExternalMemoryHostPropertiesEXTStructure describing external memory host pointer limits that can be supported by an implementation
VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVXStructure describing multiview limits that can be supported by an implementation
VkPhysicalDevicePointClippingPropertiesStructure describing the point clipping behavior supported by an implementation
VkPhysicalDeviceSubgroupPropertiesStructure describing subgroup support for an implementation
VkSubgroupFeatureFlagBitsBitmask describing what group operations are supported with subgroup scope
VkSubgroupFeatureFlagsBitmask of VkSubgroupFeatureFlagBits
VkPhysicalDeviceSubgroupSizeControlPropertiesStructure describing the control subgroup size properties of an implementation
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXTStructure describing advanced blending limits that can be supported by an implementation
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXTStructure describing max value of vertex attribute divisor that can be supported by an implementation
VkPhysicalDeviceVertexAttributeDivisorPropertiesStructure describing max value of vertex attribute divisor that can be supported by an implementation
VkPhysicalDeviceSamplerFilterMinmaxPropertiesStructure describing sampler filter minmax limits that can be supported by an implementation
VkPhysicalDeviceProtectedMemoryPropertiesStructure describing protected memory properties that can be supported by an implementation
VkPhysicalDeviceMaintenance3PropertiesStructure describing descriptor set properties
VkPhysicalDeviceMaintenance4PropertiesStructure describing various implementation-defined properties introduced with VK_KHR_maintenance4
VkPhysicalDeviceMaintenance5PropertiesStructure describing various implementation-defined properties introduced with VK_KHR_maintenance5
VkPhysicalDeviceMaintenance6PropertiesStructure describing various implementation-defined properties introduced with VK_KHR_maintenance6
VkPhysicalDeviceMaintenance7PropertiesKHRStructure describing various implementation-defined properties introduced with VK_KHR_maintenance7
VkPhysicalDeviceLayeredApiPropertiesListKHRStructure describing layered implementations underneath the Vulkan physical device
VkPhysicalDeviceLayeredApiPropertiesKHRStructure describing a single layered implementation underneath the Vulkan physical device
VkPhysicalDeviceLayeredApiKHRAPI implemented by the layered implementation
VkPhysicalDeviceLayeredApiVulkanPropertiesKHRStructure describing physical device properties of a layered Vulkan implementation underneath the Vulkan physical device
VkPhysicalDeviceMaintenance9PropertiesKHRStructure describing various implementation-defined properties introduced with VK_KHR_maintenance9
VkDefaultVertexAttributeValueKHRValues returned for unbound vertex attributes
VkPhysicalDeviceMaintenance10PropertiesKHRStructure describing various implementation-defined properties introduced with VK_KHR_maintenance10
VkPhysicalDeviceMeshShaderPropertiesNVStructure describing mesh shading properties
VkPhysicalDeviceMeshShaderPropertiesEXTStructure describing mesh shading properties
VkPhysicalDeviceDescriptorIndexingPropertiesStructure describing descriptor indexing properties that can be supported by an implementation
VkPhysicalDeviceInlineUniformBlockPropertiesStructure describing inline uniform block properties that can be supported by an implementation
VkPhysicalDeviceConservativeRasterizationPropertiesEXTStructure describing conservative raster properties that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMapPropertiesEXTStructure describing fragment density map properties that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMap2PropertiesEXTStructure describing additional fragment density map properties that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXTStructure describing fragment density map offset properties that can be supported by an implementation
VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEStructure describing fragment density map layered properties that can be supported by an implementation
VkPhysicalDeviceTileMemoryHeapPropertiesQCOMStructure describing tile memory heap properties that can be supported by an implementation
VkPhysicalDeviceShaderCorePropertiesAMDStructure describing shader core properties that can be supported by an implementation
VkPhysicalDeviceShaderCoreProperties2AMDStructure describing shader core properties that can be supported by an implementation
VkShaderCorePropertiesFlagBitsAMDBitmask specifying shader core properties
VkShaderCorePropertiesFlagsAMDBitmask of VkShaderCorePropertiesFlagBitsAMD
VkPhysicalDeviceDepthStencilResolvePropertiesStructure describing depth/stencil resolve properties that can be supported by an implementation
VkPhysicalDevicePerformanceQueryPropertiesKHRStructure describing performance query properties for an implementation
VkPhysicalDeviceShadingRateImagePropertiesNVStructure describing shading rate image limits that can be supported by an implementation
VkPhysicalDeviceMemoryDecompressionPropertiesEXTStructure describing supported memory decompression methods by an implementation
VkPhysicalDeviceTransformFeedbackPropertiesEXTStructure describing transform feedback properties that can be supported by an implementation
VkPhysicalDeviceCopyMemoryIndirectPropertiesKHRStructure describing supported queues for indirect copy
VkPhysicalDeviceRayTracingPropertiesNVProperties of the physical device for ray tracing
VkPhysicalDeviceAccelerationStructurePropertiesKHRProperties of the physical device for acceleration structure
VkPhysicalDeviceRayTracingPipelinePropertiesKHRProperties of the physical device for ray tracing
VkPhysicalDeviceCooperativeMatrixPropertiesNVStructure describing cooperative matrix properties supported by an implementation
VkPhysicalDeviceCooperativeMatrixPropertiesKHRStructure describing cooperative matrix properties supported by an implementation
VkPhysicalDeviceCooperativeMatrix2PropertiesNVStructure describing cooperative matrix properties supported by an implementation
VkPhysicalDeviceCooperativeVectorPropertiesNVStructure describing cooperative vector properties supported by an implementation
VkPhysicalDeviceShaderLongVectorPropertiesEXTStructure describing long vector properties supported by an implementation
VkPhysicalDeviceShaderSMBuiltinsPropertiesNVStructure describing shader SM Builtins properties supported by an implementation
VkPhysicalDeviceTexelBufferAlignmentPropertiesStructure describing the texel buffer alignment requirements supported by an implementation
VkPhysicalDeviceTimelineSemaphorePropertiesStructure describing timeline semaphore properties that can be supported by an implementation
VkPhysicalDeviceLineRasterizationPropertiesStructure describing line rasterization properties supported by an implementation
VkPhysicalDeviceRobustness2PropertiesKHRStructure describing robust buffer access properties supported by an implementation
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNVStructure describing push descriptor limits that can be supported by an implementation
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXTStructure describing push descriptor limits that can be supported by an implementation
VkPhysicalDevicePortabilitySubsetPropertiesKHRStructure describing additional properties supported by a portable implementation
VkPhysicalDevicePartitionedAccelerationStructurePropertiesNVStructure describing properties supported by a partitioned acceleration structure implementation
VkPhysicalDeviceClusterAccelerationStructurePropertiesNVStructure describing properties supported by a cluster acceleration structure implementation
VkPhysicalDeviceFragmentShadingRatePropertiesKHRStructure describing variable fragment shading rate limits that can be supported by an implementation
VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNVStructure describing fragment shading rate limits that can be supported by an implementation
VkPhysicalDeviceCustomBorderColorPropertiesEXTStructure describing whether custom border colors can be supported by an implementation
VkPhysicalDeviceProvokingVertexPropertiesEXTStructure describing provoking vertex properties supported by an implementation
VkPhysicalDeviceDescriptorBufferPropertiesEXTStructure describing descriptor buffer properties supported by an implementation
VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXTStructure describing descriptor buffer density map properties supported by an implementation
VkPhysicalDeviceDescriptorBufferTensorPropertiesARMStructure describing descriptor buffer tensor properties supported by an implementation
VkPhysicalDeviceHostImageCopyPropertiesStructure enumerating image layouts supported by an implementation for host memory copies
VkPhysicalDeviceSubpassShadingPropertiesHUAWEIStructure describing subpass shading properties supported by an implementation
VkPhysicalDeviceMultiDrawPropertiesEXTStructure describing multidraw limits of an implementation
VkPhysicalDeviceNestedCommandBufferPropertiesEXTStructure describing the nested command buffer limits of an implementation
VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXTStructure describing additional properties of graphics pipeline libraries
VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHRStructure describing fragment shader barycentric limits of an implementation
VkPhysicalDeviceShaderModuleIdentifierPropertiesEXTStructure describing shader module identifier properties of an implementation
VkPhysicalDevicePipelineRobustnessPropertiesStructure describing the default robustness behavior of a physical device
VkPhysicalDeviceExtendedDynamicState3PropertiesEXTStructure describing capabilities of extended dynamic state
VkPhysicalDeviceOpticalFlowPropertiesNVStructure describing properties supported by VK_NV_optical_flow
VkPhysicalDeviceOpacityMicromapPropertiesEXTStructure describing the opacity micromap properties of a physical device
VkPhysicalDeviceDisplacementMicromapPropertiesNVStructure describing the displacement micromap properties of a physical device
VkPhysicalDeviceShaderCoreBuiltinsPropertiesARMStructure describing shader core builtins properties supported by an implementation
VkRayTracingInvocationReorderModeEXTEnum providing a hint on how the application may reorder
VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXTStructure describing shader module identifier properties of an implementation
VkPhysicalDeviceRayTracingInvocationReorderPropertiesNVStructure describing shader module identifier properties of an implementation
VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEIStructure describing cluster culling shader properties supported by an implementation
VkPhysicalDeviceShaderCorePropertiesARMStructure describing shader core properties that can be supported by an implementation
VkPhysicalDeviceShaderObjectPropertiesEXTStructure describing shader object properties supported by an implementation
VkPhysicalDeviceShaderEnqueuePropertiesAMDXStructure describing shader enqueue limits of an implementation
VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNVStructure describing sparse address space limits of an implementation
VkPhysicalDeviceCudaKernelLaunchPropertiesNVStructure describing the compute capability version available
VkPhysicalDevicePushConstantBankPropertiesNVStructure describing push constant bank properties
VkPhysicalDeviceExternalFormatResolvePropertiesANDROIDStructure describing external format resolve supported by an implementation
VkPhysicalDevicePipelineBinaryPropertiesKHRStructure describing properties about the pipeline binary implementation
VkPhysicalDeviceRenderPassStripedPropertiesARMStructure describing striped rendering limits of an implementation
VkPhysicalDeviceComputeShaderDerivativesPropertiesKHRStructure describing compute shader derivative operations supported by an implementation
VkPhysicalDeviceMapMemoryPlacedPropertiesEXTStructure describing the alignment requirements of placed memory maps for a physical device
VkPhysicalDeviceImageAlignmentControlPropertiesMESAStructure describing supported image alignments for a physical device
VkPhysicalDeviceTileShadingPropertiesQCOMStructure describing properties supported by VK_QCOM_tile_shading
VkPhysicalDeviceFaultPropertiesKHRStructure describing fault reporting properties for the physical device
VkPhysicalDeviceTensorPropertiesARMStructure describing the tensor properties of a physical device
VkPhysicalDeviceQueuePerfHintPropertiesQCOMStructure describing queue perf hint properties for a physical device
VkPhysicalDevicePerformanceCountersByRegionPropertiesARMStructure describing per region performance counter properties for a physical device
VkPhysicalDeviceDescriptorHeapPropertiesEXTStructure describing supported image alignments for a physical device
VkPhysicalDeviceDescriptorHeapTensorPropertiesARMStructure describing descriptor heap tensor properties supported by an implementation
VkPhysicalDeviceShaderInstrumentationPropertiesARMStructure describing shader instrumentation properties for a physical device
VkPhysicalDeviceShaderAbortPropertiesKHRStructure describing the maximum size of a shader abort message

Limit Requirements

Required_LimitsVulkan required limit tables

Additional Multisampling Capabilities

vkGetPhysicalDeviceMultisamplePropertiesEXTReport sample count specific multisampling capabilities of a physical device
VkMultisamplePropertiesEXTStructure returning information about sample count specific additional multisampling capabilities

If the sample count for which additional multisampling capabilities are requested using vkGetPhysicalDeviceMultisamplePropertiesEXT is set in sampleLocationSampleCounts the width and height members of VkMultisamplePropertiesEXT::maxSampleLocationGridSize must be greater than or equal to the corresponding members of maxSampleLocationGridSize, respectively, otherwise both members must be 0.

Milestone Limits

Roadmap 2022

Implementations that claim support for the Roadmap 2022 milestone must satisfy the following additional limit requirements:

LimitSupported LimitLimit Type
maxImageDimension1D8192min
maxImageDimension2D8192min
maxImageDimensionCube8192min
maxImageArrayLayers2048min
maxUniformBufferRange65536min
bufferImageGranularity4096max
maxPerStageDescriptorSamplers64min
maxPerStageDescriptorUniformBuffers15min
maxPerStageDescriptorStorageBuffers30min
maxPerStageDescriptorSampledImages200min
maxPerStageDescriptorStorageImages16min
maxPerStageResources200min
maxDescriptorSetSamplers576min
maxDescriptorSetUniformBuffers90min
maxDescriptorSetStorageBuffers96min
maxDescriptorSetSampledImages1800min
maxDescriptorSetStorageImages144min
maxFragmentCombinedOutputResources16min
maxComputeWorkGroupInvocations256min
maxComputeWorkGroupSize(256,256,64)min
subTexelPrecisionBits8min
mipmapPrecisionBits6min
maxSamplerLodBias14min
pointSizeGranularity0.125max
lineWidthGranularity0.5max
standardSampleLocationsVK_TRUEBoolean
maxColorAttachments7min
subgroupSize4min
subgroupSupportedStagesVK_SHADER_STAGE_COMPUTE_BIT``VK_SHADER_STAGE_FRAGMENT_BITbitfield
subgroupSupportedOperationsVK_SUBGROUP_FEATURE_BASIC_BIT``VK_SUBGROUP_FEATURE_VOTE_BIT``VK_SUBGROUP_FEATURE_ARITHMETIC_BIT``VK_SUBGROUP_FEATURE_BALLOT_BIT``VK_SUBGROUP_FEATURE_SHUFFLE_BIT``VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT``VK_SUBGROUP_FEATURE_QUAD_BITbitfield
shaderSignedZeroInfNanPreserveFloat16VK_TRUEBoolean
shaderSignedZeroInfNanPreserveFloat32VK_TRUEBoolean
maxSubgroupSize4min
maxPerStageDescriptorUpdateAfterBindInputAttachments7min

Roadmap 2024

Implementations that claim support for the Roadmap 2024 milestone must satisfy the following additional limit requirements:

LimitSupported LimitLimit Type
shaderRoundingModeRTEFloat16VK_TRUEBoolean
shaderRoundingModeRTEFloat32VK_TRUEBoolean
timestampComputeAndGraphicsVK_TRUEBoolean
maxColorAttachments8min
maxBoundDescriptorSets7min

Roadmap 2026

Implementations that claim support for the Roadmap 2026 milestone must satisfy the following additional limit requirements:

LimitSupported LimitLimit Type
maxPerStageDescriptorUniformBuffers200min
maxPerStageDescriptorStorageBuffers200min
maxPerStageDescriptorInputAttachments8min
maxDescriptorSetUniformBuffers1800min
maxDescriptorSetStorageBuffers1800min
maxDescriptorSetInputAttachments8min
maxVertexOutputComponents124min
maxTessellationControlPerVertexInputComponents128min
maxTessellationControlPerVertexOutputComponents128min
maxTessellationControlTotalOutputComponents4096min
maxTessellationEvaluationInputComponents128min
maxTessellationEvaluationOutputComponents128min
maxGeometryOutputComponents128min
maxFragmentInputComponents112min
maxFragmentOutputAttachments8min
maxComputeSharedMemorySize32768min
subPixelPrecisionBits8min
maxViewportDimensions.width8192min
maxViewportDimensions.height8192min
maxFramebufferWidth8192min
maxFramebufferHeight8192min