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
VkPhysicalDevicePushDescriptorPropertiesKHRStructure 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
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
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
VkPhysicalDeviceVertexAttributeDivisorPropertiesKHRStructure 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
VkPhysicalDeviceMaintenance3PropertiesStructure describing descriptor set properties
VkPhysicalDeviceMaintenance4PropertiesStructure describing various implementation-defined properties introduced with VK_KHR_maintenance4
VkPhysicalDeviceMaintenance5PropertiesKHRStructure describing various implementation-defined properties introduced with VK_KHR_maintenance5
VkPhysicalDeviceMaintenance6PropertiesKHRStructure describing various implementation-defined properties introduced with VK_KHR_maintenance6
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
VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOMStructure describing fragment density map offset 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
VkPhysicalDeviceMemoryDecompressionPropertiesNVStructure describing supported memory decompression methods by an implementation
VkPhysicalDeviceTransformFeedbackPropertiesEXTStructure describing transform feedback properties that can be supported by an implementation
VkPhysicalDeviceCopyMemoryIndirectPropertiesNVStructure 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
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
VkPhysicalDeviceLineRasterizationPropertiesKHRStructure describing line rasterization properties supported by an implementation
VkPhysicalDeviceRobustness2PropertiesEXTStructure describing robust buffer access properties supported by an implementation
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNVStructure describing push descriptor limits that can be supported by an implementation
VkPhysicalDevicePortabilitySubsetPropertiesKHRStructure describing additional properties supported by a portable 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
VkPhysicalDeviceHostImageCopyPropertiesEXTStructure 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
VkPhysicalDevicePipelineRobustnessPropertiesEXTStructure 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
VkRayTracingInvocationReorderModeNVEnum providing a hint on how the application may reorder
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
VkPhysicalDeviceExternalFormatResolvePropertiesANDROIDStructure describing external format resolve supported by an implementation
VkPhysicalDeviceRenderPassStripedPropertiesARMStructure describing striped rendering limits of an implementation
VkPhysicalDeviceMapMemoryPlacedPropertiesEXTStructure describing the alignment requirements of placed memory maps for a physical device

Limit Requirements

The following table specifies the required minimum/maximum for all Vulkan graphics implementations. Where a limit corresponds to a fine-grained device feature which is optional, the feature name is listed with two required limits, one when the feature is supported and one when it is not supported. If an implementation supports a feature, the limits reported are the same whether or not the feature is enabled.

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.