Manual
Required_Limits
Vulkan required limit tables
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.
| Type | Limit | Feature |
|---|---|---|
uint32_t | maxImageDimension1D | - |
uint32_t | maxImageDimension2D | - |
uint32_t | maxImageDimension3D | - |
uint32_t | maxImageDimensionCube | - |
uint32_t | maxImageArrayLayers | - |
uint32_t | maxTexelBufferElements | - |
uint32_t | maxUniformBufferRange | - |
uint32_t | maxStorageBufferRange | - |
uint32_t | maxPushConstantsSize | - |
uint32_t | maxMemoryAllocationCount | - |
uint32_t | maxSamplerAllocationCount | - |
| VkDeviceSize | bufferImageGranularity | - |
| VkDeviceSize | sparseAddressSpaceSize | sparseBinding |
uint32_t | maxBoundDescriptorSets | - |
uint32_t | maxPerStageDescriptorSamplers | - |
uint32_t | maxPerStageDescriptorUniformBuffers | - |
uint32_t | maxPerStageDescriptorStorageBuffers | - |
uint32_t | maxPerStageDescriptorSampledImages | - |
uint32_t | maxPerStageDescriptorStorageImages | - |
uint32_t | maxPerStageDescriptorInputAttachments | - |
uint32_t | maxPerStageResources | - |
uint32_t | maxDescriptorSetSamplers | - |
uint32_t | maxDescriptorSetUniformBuffers | - |
uint32_t | maxDescriptorSetUniformBuffersDynamic | - |
uint32_t | maxDescriptorSetStorageBuffers | - |
uint32_t | maxDescriptorSetStorageBuffersDynamic | - |
uint32_t | maxDescriptorSetSampledImages | - |
uint32_t | maxDescriptorSetStorageImages | - |
uint32_t | maxDescriptorSetInputAttachments | - |
uint32_t | maxVertexInputAttributes | - |
uint32_t | maxVertexInputBindings | - |
uint32_t | maxVertexInputAttributeOffset | - |
uint32_t | maxVertexInputBindingStride | - |
uint32_t | maxVertexOutputComponents | - |
uint32_t | maxTessellationGenerationLevel | tessellationShader |
uint32_t | maxTessellationPatchSize | tessellationShader |
uint32_t | maxTessellationControlPerVertexInputComponents | tessellationShader |
uint32_t | maxTessellationControlPerVertexOutputComponents | tessellationShader |
uint32_t | maxTessellationControlPerPatchOutputComponents | tessellationShader |
uint32_t | maxTessellationControlTotalOutputComponents | tessellationShader |
uint32_t | maxTessellationEvaluationInputComponents | tessellationShader |
uint32_t | maxTessellationEvaluationOutputComponents | tessellationShader |
uint32_t | maxGeometryShaderInvocations | geometryShader |
uint32_t | maxGeometryInputComponents | geometryShader |
uint32_t | maxGeometryOutputComponents | geometryShader |
uint32_t | maxGeometryOutputVertices | geometryShader |
uint32_t | maxGeometryTotalOutputComponents | geometryShader |
uint32_t | maxFragmentInputComponents | - |
uint32_t | maxFragmentOutputAttachments | - |
uint32_t | maxFragmentDualSrcAttachments | dualSrcBlend |
uint32_t | maxFragmentCombinedOutputResources | - |
uint32_t | maxComputeSharedMemorySize | - |
3 ×uint32_t | maxComputeWorkGroupCount | - |
uint32_t | maxComputeWorkGroupInvocations | - |
3 ×uint32_t | maxComputeWorkGroupSize | - |
uint32_t | subPixelPrecisionBits | - |
uint32_t | subTexelPrecisionBits | - |
uint32_t | mipmapPrecisionBits | - |
uint32_t | maxDrawIndexedIndexValue | fullDrawIndexUint32 |
uint32_t | maxDrawIndirectCount | multiDrawIndirect |
float | maxSamplerLodBias | - |
float | maxSamplerAnisotropy | samplerAnisotropy |
uint32_t | maxViewports | multiViewport |
2 ×uint32_t | maxViewportDimensions | - |
2 ×float | viewportBoundsRange | - |
uint32_t | viewportSubPixelBits | - |
size_t | minMemoryMapAlignment | - |
| VkDeviceSize | minTexelBufferOffsetAlignment | - |
| VkDeviceSize | minUniformBufferOffsetAlignment | - |
| VkDeviceSize | minStorageBufferOffsetAlignment | - |
int32_t | minTexelOffset | - |
uint32_t | maxTexelOffset | - |
int32_t | minTexelGatherOffset | shaderImageGatherExtended |
uint32_t | maxTexelGatherOffset | shaderImageGatherExtended |
float | minInterpolationOffset | sampleRateShading |
float | maxInterpolationOffset | sampleRateShading |
uint32_t | subPixelInterpolationOffsetBits | sampleRateShading |
uint32_t | maxFramebufferWidth | - |
uint32_t | maxFramebufferHeight | - |
uint32_t | maxFramebufferLayers | - |
| VkSampleCountFlags | framebufferColorSampleCounts | - |
| VkSampleCountFlags | framebufferIntegerColorSampleCounts | - |
| VkSampleCountFlags | framebufferDepthSampleCounts | - |
| VkSampleCountFlags | framebufferStencilSampleCounts | - |
| VkSampleCountFlags | framebufferNoAttachmentsSampleCounts | - |
uint32_t | maxColorAttachments | - |
| VkSampleCountFlags | sampledImageColorSampleCounts | - |
| VkSampleCountFlags | sampledImageIntegerSampleCounts | - |
| VkSampleCountFlags | sampledImageDepthSampleCounts | - |
| VkSampleCountFlags | sampledImageStencilSampleCounts | - |
| VkSampleCountFlags | storageImageSampleCounts | shaderStorageImageMultisample |
uint32_t | maxSampleMaskWords | - |
| VkBool32 | timestampComputeAndGraphics | - |
float | timestampPeriod | - |
uint32_t | maxClipDistances | shaderClipDistance |
uint32_t | maxCullDistances | shaderCullDistance |
uint32_t | maxCombinedClipAndCullDistances | shaderCullDistance |
uint32_t | discreteQueuePriorities | - |
2 ×float | pointSizeRange | largePoints |
2 ×float | lineWidthRange | wideLines |
float | pointSizeGranularity | largePoints |
float | lineWidthGranularity | wideLines |
| VkBool32 | strictLines | - |
| VkBool32 | standardSampleLocations | - |
| VkDeviceSize | optimalBufferCopyOffsetAlignment | - |
| VkDeviceSize | optimalBufferCopyRowPitchAlignment | - |
| VkDeviceSize | nonCoherentAtomSize | - |
uint32_t | maxDiscardRectangles | VK_EXT_discard_rectangles |
| VkBool32 | filterMinmaxSingleComponentFormats | samplerFilterMinmaxVK_EXT_sampler_filter_minmax |
| VkBool32 | filterMinmaxImageComponentMapping | samplerFilterMinmaxVK_EXT_sampler_filter_minmax |
| VkDeviceSize | maxBufferSize | maintenance4 |
float | primitiveOverestimationSize | VK_EXT_conservative_rasterization |
| VkBool32 | maxExtraPrimitiveOverestimationSize | VK_EXT_conservative_rasterization |
float | extraPrimitiveOverestimationSizeGranularity | VK_EXT_conservative_rasterization |
| VkBool32 | degenerateTriangleRasterized | VK_EXT_conservative_rasterization |
float | degenerateLinesRasterized | VK_EXT_conservative_rasterization |
| VkBool32 | fullyCoveredFragmentShaderInputVariable | VK_EXT_conservative_rasterization |
| VkBool32 | conservativeRasterizationPostDepthCoverage | VK_EXT_conservative_rasterization |
uint32_t | maxUpdateAfterBindDescriptorsInAllPools | descriptorIndexing |
| VkBool32 | shaderUniformBufferArrayNonUniformIndexingNative | - |
| VkBool32 | shaderSampledImageArrayNonUniformIndexingNative | - |
| VkBool32 | shaderStorageBufferArrayNonUniformIndexingNative | - |
| VkBool32 | shaderStorageImageArrayNonUniformIndexingNative | - |
| VkBool32 | shaderInputAttachmentArrayNonUniformIndexingNative | - |
uint32_t | maxPerStageDescriptorUpdateAfterBindSamplers | descriptorIndexing |
uint32_t | maxPerStageDescriptorUpdateAfterBindUniformBuffers | descriptorIndexing |
uint32_t | maxPerStageDescriptorUpdateAfterBindStorageBuffers | descriptorIndexing |
uint32_t | maxPerStageDescriptorUpdateAfterBindSampledImages | descriptorIndexing |
uint32_t | maxPerStageDescriptorUpdateAfterBindStorageImages | descriptorIndexing |
uint32_t | maxPerStageDescriptorUpdateAfterBindInputAttachments | descriptorIndexing |
uint32_t | maxPerStageUpdateAfterBindResources | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindSamplers | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindUniformBuffers | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindUniformBuffersDynamic | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindStorageBuffers | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindStorageBuffersDynamic | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindSampledImages | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindStorageImages | descriptorIndexing |
uint32_t | maxDescriptorSetUpdateAfterBindInputAttachments | descriptorIndexing |
uint32_t | maxInlineUniformBlockSize | inlineUniformBlock |
uint32_t | maxPerStageDescriptorInlineUniformBlocks | inlineUniformBlock |
uint32_t | maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks | inlineUniformBlock |
uint32_t | maxDescriptorSetInlineUniformBlocks | inlineUniformBlock |
uint32_t | maxDescriptorSetUpdateAfterBindInlineUniformBlocks | inlineUniformBlock |
uint32_t | maxInlineUniformTotalSize | inlineUniformBlock |
uint32_t | maxVertexAttribDivisor | Vulkan 1.4,VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskWorkGroupInvocations | VK_NV_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskWorkGroupSize | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskTotalMemorySize | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskOutputCount | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshWorkGroupInvocations | VK_NV_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshWorkGroupSize | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshTotalMemorySize | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshMultiviewViewCount | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::meshOutputPerVertexGranularity | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesNV::meshOutputPerPrimitiveGranularity | VK_NV_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount | VK_EXT_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations | VK_EXT_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskPayloadSize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskSharedMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskPayloadAndSharedMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount | VK_EXT_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations | VK_EXT_mesh_shader |
3 ×uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshSharedMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshPayloadAndSharedMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshPayloadAndOutputMemorySize | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputComponents | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputLayers | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshMultiviewViewCount | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::meshOutputPerVertexGranularity | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::meshOutputPerPrimitiveGranularity | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxPreferredTaskWorkGroupInvocations | VK_EXT_mesh_shader |
uint32_t | VkPhysicalDeviceMeshShaderPropertiesEXT::maxPreferredMeshWorkGroupInvocations | VK_EXT_mesh_shader |
| VkBool32 | VkPhysicalDeviceMeshShaderPropertiesEXT::prefersLocalInvocationVertexOutput | VK_EXT_mesh_shader |
| VkBool32 | VkPhysicalDeviceMeshShaderPropertiesEXT::prefersLocalInvocationPrimitiveOutput | VK_EXT_mesh_shader |
| VkBool32 | VkPhysicalDeviceMeshShaderPropertiesEXT::prefersCompactVertexOutput | VK_EXT_mesh_shader |
| VkBool32 | VkPhysicalDeviceMeshShaderPropertiesEXT::prefersCompactPrimitiveOutput | VK_EXT_mesh_shader |
uint32_t | maxTransformFeedbackStreams | VK_EXT_transform_feedback |
uint32_t | maxTransformFeedbackBuffers | VK_EXT_transform_feedback |
| VkDeviceSize | maxTransformFeedbackBufferSize | VK_EXT_transform_feedback |
uint32_t | maxTransformFeedbackStreamDataSize | VK_EXT_transform_feedback |
uint32_t | maxTransformFeedbackBufferDataSize | VK_EXT_transform_feedback |
uint32_t | maxTransformFeedbackBufferDataStride | VK_EXT_transform_feedback |
| VkBool32 | transformFeedbackQueries | VK_EXT_transform_feedback |
| VkBool32 | transformFeedbackStreamsLinesTriangles | VK_EXT_transform_feedback |
| VkBool32 | transformFeedbackRasterizationStreamSelect | VK_EXT_transform_feedback |
| VkBool32 | transformFeedbackDraw | VK_EXT_transform_feedback |
| VkExtent2D | minFragmentDensityTexelSize | fragmentDensityMap |
| VkExtent2D | maxFragmentDensityTexelSize | fragmentDensityMap |
| VkBool32 | fragmentDensityInvocations | fragmentDensityMap |
| VkBool32 | subsampledLoads | VK_EXT_fragment_density_map2 |
| VkBool32 | subsampledCoarseReconstructionEarlyAccess | VK_EXT_fragment_density_map2 |
uint32_t | maxSubsampledArrayLayers | VK_EXT_fragment_density_map2 |
uint32_t | maxDescriptorSetSubsampledSamplers | VK_EXT_fragment_density_map2 |
| VkExtent2D | fragmentDensityOffsetGranularity | fragmentDensityMapOffset |
uint32_t | maxFragmentDensityMapLayers | fragmentDensityMapLayered |
uint32_t | maxGeometryCount | VK_NV_ray_tracing,VK_KHR_acceleration_structure |
uint32_t | maxInstanceCount | VK_NV_ray_tracing,VK_KHR_acceleration_structure |
uint32_t | maxVerticesPerCluster | clusterAccelerationStructure |
uint32_t | maxTrianglesPerCluster | clusterAccelerationStructure |
uint32_t | clusterScratchByteAlignment | clusterAccelerationStructure |
uint32_t | clusterByteAlignment | clusterAccelerationStructure |
uint32_t | clusterTemplateByteAlignment | clusterAccelerationStructure |
uint32_t | clusterBottomLevelByteAlignment | clusterAccelerationStructure |
uint32_t | clusterTemplateBoundsByteAlignment | clusterAccelerationStructure |
uint32_t | maxClusterGeometryIndex | clusterAccelerationStructure |
uint32_t | shaderGroupHandleSize | VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline |
uint32_t | maxShaderGroupStride | VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline |
uint32_t | shaderGroupBaseAlignment | VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline |
uint32_t | maxRecursionDepth | VK_NV_ray_tracing |
uint32_t | maxTriangleCount | VK_NV_ray_tracing |
uint32_t | maxPerStageDescriptorAccelerationStructures | VK_KHR_acceleration_structure |
uint32_t | maxPerStageDescriptorUpdateAfterBindAccelerationStructures | VK_KHR_acceleration_structure |
uint32_t | maxDescriptorSetAccelerationStructures | VK_NV_ray_tracing,VK_KHR_acceleration_structure |
uint32_t | maxDescriptorSetUpdateAfterBindAccelerationStructures | VK_KHR_acceleration_structure |
uint32_t | minAccelerationStructureScratchOffsetAlignment | VK_KHR_acceleration_structure |
uint32_t | maxRayRecursionDepth | VK_KHR_ray_tracing_pipeline |
uint32_t | shaderGroupHandleCaptureReplaySize | VK_KHR_ray_tracing_pipeline |
uint32_t | maxRayDispatchInvocationCount | VK_KHR_ray_tracing_pipeline |
uint32_t | shaderGroupHandleAlignment | VK_KHR_ray_tracing_pipeline |
uint32_t | maxRayHitAttributeSize | VK_KHR_ray_tracing_pipeline |
uint32_t | maxPartitionCount | partitionedAccelerationStructure |
uint64_t | maxTimelineSemaphoreValueDifference | timelineSemaphore |
uint32_t | lineSubPixelPrecisionBits | Vulkan 1.4,VK_KHR_line_rasterization,VK_EXT_line_rasterization |
uint32_t | maxCustomBorderColorSamplers | VK_EXT_custom_border_color |
| VkDeviceSize | robustStorageBufferAccessSizeAlignment | VK_EXT_robustness2,VK_KHR_robustness2 |
| VkDeviceSize | robustUniformBufferAccessSizeAlignment | VK_EXT_robustness2,VK_KHR_robustness2 |
2 ×uint32_t | minFragmentShadingRateAttachmentTexelSize | attachmentFragmentShadingRate |
2 ×uint32_t | maxFragmentShadingRateAttachmentTexelSize | attachmentFragmentShadingRate |
uint32_t | maxFragmentShadingRateAttachmentTexelSizeAspectRatio | attachmentFragmentShadingRate |
| VkBool32 | primitiveFragmentShadingRateWithMultipleViewports | primitiveFragmentShadingRate |
| VkBool32 | layeredShadingRateAttachments | attachmentFragmentShadingRate |
| VkBool32 | fragmentShadingRateNonTrivialCombinerOps | pipelineFragmentShadingRate |
2 ×uint32_t | maxFragmentSize | pipelineFragmentShadingRate |
uint32_t | maxFragmentSizeAspectRatio | pipelineFragmentShadingRate |
uint32_t | maxFragmentShadingRateCoverageSamples | pipelineFragmentShadingRate |
| VkSampleCountFlagBits | maxFragmentShadingRateRasterizationSamples | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithShaderDepthStencilWrites | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithSampleMask | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithShaderSampleMask | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithConservativeRasterization | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithFragmentShaderInterlock | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateWithCustomSampleLocations | pipelineFragmentShadingRate |
| VkBool32 | fragmentShadingRateStrictMultiplyCombiner | pipelineFragmentShadingRate |
| VkSampleCountFlagBits | maxFragmentShadingRateInvocationCount | supersampleFragmentShadingRates |
| VkBool32 | combinedImageSamplerDescriptorSingleArray | VK_EXT_descriptor_buffer |
| VkBool32 | bufferlessPushDescriptors | VK_EXT_descriptor_buffer |
| VkBool32 | allowSamplerImageViewPostSubmitCreation | VK_EXT_descriptor_buffer |
| VkDeviceSize | descriptorBufferOffsetAlignment | VK_EXT_descriptor_buffer |
uint32_t | maxDescriptorBufferBindings | VK_EXT_descriptor_buffer |
uint32_t | maxResourceDescriptorBufferBindings | VK_EXT_descriptor_buffer |
uint32_t | maxSamplerDescriptorBufferBindings | VK_EXT_descriptor_buffer |
uint32_t | maxEmbeddedImmutableSamplerBindings | VK_EXT_descriptor_buffer |
uint32_t | maxEmbeddedImmutableSamplers | VK_EXT_descriptor_buffer |
size_t | bufferCaptureReplayDescriptorDataSize | VK_EXT_descriptor_buffer |
size_t | imageCaptureReplayDescriptorDataSize | VK_EXT_descriptor_buffer |
size_t | imageViewCaptureReplayDescriptorDataSize | VK_EXT_descriptor_buffer |
size_t | samplerCaptureReplayDescriptorDataSize | VK_EXT_descriptor_buffer |
size_t | accelerationStructureCaptureReplayDescriptorDataSize | VK_EXT_descriptor_buffer |
size_t | samplerDescriptorSize | VK_EXT_descriptor_buffer |
size_t | combinedImageSamplerDescriptorSize | VK_EXT_descriptor_buffer |
size_t | sampledImageDescriptorSize | VK_EXT_descriptor_buffer |
size_t | storageImageDescriptorSize | VK_EXT_descriptor_buffer |
size_t | uniformTexelBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | robustUniformTexelBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | storageTexelBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | robustStorageTexelBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | uniformBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | robustUniformBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | storageBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | robustStorageBufferDescriptorSize | VK_EXT_descriptor_buffer |
size_t | inputAttachmentDescriptorSize | VK_EXT_descriptor_buffer |
size_t | accelerationStructureDescriptorSize | VK_EXT_descriptor_buffer |
| VkDeviceSize | maxSamplerDescriptorBufferRange | VK_EXT_descriptor_buffer |
| VkDeviceSize | maxResourceDescriptorBufferRange | VK_EXT_descriptor_buffer |
| VkDeviceSize | samplerDescriptorBufferAddressSpaceSize | VK_EXT_descriptor_buffer |
| VkDeviceSize | resourceDescriptorBufferAddressSpaceSize | VK_EXT_descriptor_buffer |
| VkDeviceSize | descriptorBufferAddressSpaceSize | VK_EXT_descriptor_buffer |
size_t | combinedImageSamplerDensityMapDescriptorSize | VK_EXT_descriptor_buffer |
uint32_t | maxSubpassShadingWorkgroupSizeAspectRatio | subpassShading |
| VkBool32 | graphicsPipelineLibraryFastLinking | graphicsPipelineLibrary |
| VkBool32 | graphicsPipelineLibraryIndependentInterpolationDecoration | graphicsPipelineLibrary |
| VkBool32 | triStripVertexOrderIndependentOfProvokingVertex | - |
uint32_t | maxWeightFilterPhases | textureSampleWeighted |
2 ×uint32_t | maxWeightFilterDimension | textureSampleWeighted |
2 ×uint32_t | maxBlockMatchRegion | textureBlockMatch |
2 ×uint32_t | maxBoxFilterBlockSize | textureBoxFilter |
| VkBool32 | dynamicPrimitiveTopologyUnrestricted | VK_EXT_extended_dynamic_state3 |
uint32_t | maxOpacity2StateSubdivisionLevel | VK_EXT_opacity_micromap |
uint32_t | maxOpacity4StateSubdivisionLevel | VK_EXT_opacity_micromap |
uint64_t | maxDecompressionIndirectCount | VK_NV_memory_decompression,VK_EXT_memory_decompression |
3 ×uint32_t | maxWorkGroupCount | VK_HUAWEI_cluster_culling_shader |
3 ×uint32_t | maxWorkGroupSize | VK_HUAWEI_cluster_culling_shader |
uint32_t | maxOutputClusterCount | VK_HUAWEI_cluster_culling_shader |
| VkDeviceSize | indirectBufferOffsetAlignment | VK_HUAWEI_cluster_culling_shader |
uint32_t | maxExecutionGraphDepth | shaderEnqueue |
uint32_t | maxExecutionGraphShaderOutputNodes | shaderEnqueue |
uint32_t | maxExecutionGraphShaderPayloadSize | shaderEnqueue |
uint32_t | maxExecutionGraphShaderPayloadCount | shaderEnqueue |
uint32_t | executionGraphDispatchAddressAlignment | shaderEnqueue |
uint32_t | maxExecutionGraphVertexBufferBindings | shaderEnqueue |
3 ×uint32_t | maxExecutionGraphWorkgroupCount | shaderEnqueue |
uint32_t | maxExecutionGraphWorkgroups | shaderEnqueue |
uint32_t | maxIndirectShaderObjectCount | shaderObject |
| VkDeviceSize | extendedSparseAddressSpaceSize | sparseBinding,extendedSparseAddressSpace |
uint32_t | supportedImageAlignmentMask | imageAlignmentControl |
| VkBool32 | separateDepthStencilAttachmentAccess | maintenance7 |
uint32_t | maxDescriptorSetTotalUniformBuffersDynamic | maintenance7 |
uint32_t | maxDescriptorSetTotalStorageBuffersDynamic | maintenance7 |
uint32_t | maxDescriptorSetTotalBuffersDynamic | maintenance7 |
uint32_t | maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic | maintenance7 |
uint32_t | maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic | maintenance7 |
uint32_t | maxDescriptorSetUpdateAfterBindTotalBuffersDynamic | maintenance7 |
uint32_t | cooperativeMatrixWorkgroupScopeMaxWorkgroupSize | cooperativeMatrixWorkgroupScope |
uint32_t | cooperativeMatrixFlexibleDimensionsMaxDimension | cooperativeMatrixFlexibleDimensions |
uint32_t | cooperativeMatrixWorkgroupScopeReservedSharedMemory | cooperativeMatrixWorkgroupScope |
| VkBool32 | shaderSignedZeroInfNanPreserveFloat16 | shaderFloat16 |
| VkBool32 | cooperativeVectorTrainingFloat16Accumulation | - |
| VkBool32 | cooperativeVectorTrainingFloat32Accumulation | - |
uint32_t | maxApronSize | tileShadingApron |
| VkBool32 | preferNonCoherent | tileShading |
2 ×uint32_t | tileGranularity | tileShading |
2 ×uint32_t | maxTileShadingRate | tileShadingDispatchTile |
uint32_t | maxShaderBindingTableRecordIndex | VK_EXT_ray_tracing_invocation_reorder |
| VkBool32 | resolveSrgbFormatAppliesTransferFunction | maintenance10 |
| VkBool32 | resolveSrgbFormatSupportsTransferFunctionControl | maintenance10 |
| VkDeviceSize | samplerHeapAlignment | descriptorHeap |
| VkDeviceSize | resourceHeapAlignment | descriptorHeap |
| VkDeviceSize | maxSamplerHeapSize | descriptorHeap |
| VkDeviceSize | maxResourceHeapSize | descriptorHeap |
| VkDeviceSize | minSamplerHeapReservedRange | descriptorHeap |
| VkDeviceSize | minSamplerHeapReservedRangeWithEmbedded | descriptorHeap |
| VkDeviceSize | minResourceHeapReservedRange | descriptorHeap |
| VkDeviceSize | samplerDescriptorSize | descriptorHeap |
| VkDeviceSize | imageDescriptorSize | descriptorHeap |
| VkDeviceSize | bufferDescriptorSize | descriptorHeap |
| VkDeviceSize | samplerDescriptorAlignment | descriptorHeap |
| VkDeviceSize | imageDescriptorAlignment | descriptorHeap |
| VkDeviceSize | bufferDescriptorAlignment | descriptorHeap |
| VkDeviceSize | maxPushDataSize | descriptorHeap |
size_t | imageCaptureReplayOpaqueDataSize | descriptorHeap |
uint32_t | maxDescriptorHeapEmbeddedSamplers | descriptorHeap |
uint32_t | samplerYcbcrConversionCount | descriptorHeap |
uint32_t | sparseDescriptorHeaps | descriptorHeap |
uint32_t | protectedDescriptorHeaps | descriptorHeap |
uint32_t | numMetrics | shaderInstrumentation |
| VkBool32 | perBasicBlockGranularity | shaderInstrumentation |
uint64_t | maxShaderAbortMessageSize | shaderAbort |
uint32_t | maxDeviceFaultCount | VK_KHR_device_fault |
| Limit | Unsupported Limit | Supported Limit | Limit Type |
|---|---|---|---|
maxImageDimension1D | - | 4096 (Vulkan Core)8192 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxImageDimension2D | - | 4096 (Vulkan Core)8192 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxImageDimension3D | - | 256 (Vulkan Core)512 (Vulkan 1.4) | min |
maxImageDimensionCube | - | 4096 (Vulkan Core)8192 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxImageArrayLayers | - | 256 (Vulkan Core)2048 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxTexelBufferElements | - | 65536 | min |
maxUniformBufferRange | - | 16384 (Vulkan Core)65536 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxStorageBufferRange | - | 227 | min |
maxPushConstantsSize | - | 128 (Vulkan Core)256 (Vulkan 1.4) | min |
maxMemoryAllocationCount | - | 4096 | min |
maxSamplerAllocationCount | - | 4000 | min |
bufferImageGranularity | - | 131072 (Vulkan Core)4096 (Vulkan Roadmap 2022, Vulkan 1.4) | max |
sparseAddressSpaceSize | 0 | 231 | min |
maxBoundDescriptorSets | - | 4 (Vulkan Core)7 (Vulkan Roadmap 2024, Vulkan 1.4) | min |
maxPerStageDescriptorSamplers | - | 16 (Vulkan Core)64 (Vulkan Roadmap 2022) | min |
maxPerStageDescriptorUniformBuffers | - | 12 (Vulkan Core)15 (Vulkan Roadmap 2022, Vulkan 1.4)200 (Vulkan Roadmap 2026) | min |
maxPerStageDescriptorStorageBuffers | - | 4 (Vulkan Core)30 (Vulkan Roadmap 2022)200 (Vulkan Roadmap 2026) | min |
maxPerStageDescriptorSampledImages | - | 16 (Vulkan Core)200 (Vulkan Roadmap 2022) | min |
maxPerStageDescriptorStorageImages | - | 4 (Vulkan Core)144 (Vulkan Roadmap 2022) | min |
maxPerStageDescriptorInputAttachments | - | 48 (Vulkan Roadmap 2026) | min |
maxPerStageResources | - | 1282(Vulkan Core)200 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxDescriptorSetSamplers | - | 968(Vulkan Core)576 (Vulkan Roadmap 2022) | min,n× PerStage |
maxDescriptorSetUniformBuffers | - | 728(Vulkan Core)90 (Vulkan Roadmap 2022, Vulkan 1.4)1800 (Vulkan Roadmap 2026) | min,n× PerStage |
maxDescriptorSetUniformBuffersDynamic | - | 8 | min |
maxDescriptorSetStorageBuffers | - | 248(Vulkan Core)96 (Vulkan Roadmap 2022, Vulkan 1.4)1800 (Vulkan Roadmap 2026) | min,n× PerStage |
maxDescriptorSetStorageBuffersDynamic | - | 4 | min |
maxDescriptorSetTotalUniformBuffersDynamic | - | maxDescriptorSetUniformBuffersDynamic | min |
maxDescriptorSetTotalStorageBuffersDynamic | - | maxDescriptorSetStorageBuffersDynamic | min |
maxDescriptorSetTotalBuffersDynamic | - | maxDescriptorSetUniformBuffersDynamic + maxDescriptorSetStorageBuffersDynamic | min |
maxDescriptorSetSampledImages | - | 968(Vulkan Core)1800 (Vulkan Roadmap 2022) | min,n× PerStage |
maxDescriptorSetStorageImages | - | 248(Vulkan Core)144 (Vulkan Roadmap 2022, Vulkan 1.4) | min,n× PerStage |
maxDescriptorSetInputAttachments | - | 48 (Vulkan Roadmap 2026) | min |
maxVertexInputAttributes | - | 16 | min |
maxVertexInputBindings | - | 1610 | min |
maxVertexInputAttributeOffset | - | 2047 | min |
maxVertexInputBindingStride | - | 2048 | min |
maxVertexOutputComponents | - | 64124 (Vulkan Roadmap 2026) | min |
maxTessellationGenerationLevel | 0 | 64 | min |
maxTessellationPatchSize | 0 | 32 | min |
maxTessellationControlPerVertexInputComponents | 0 | 64128 (Vulkan Roadmap 2026) | min |
maxTessellationControlPerVertexOutputComponents | 0 | 64128 (Vulkan Roadmap 2026) | min |
maxTessellationControlPerPatchOutputComponents | 0 | 120 | min |
maxTessellationControlTotalOutputComponents | 0 | 20484096 (Vulkan Roadmap 2026) | min |
maxTessellationEvaluationInputComponents | 0 | 64128 (Vulkan Roadmap 2026) | min |
maxTessellationEvaluationOutputComponents | 0 | 64128 (Vulkan Roadmap 2026) | min |
maxGeometryShaderInvocations | 0 | 32 | min |
maxGeometryInputComponents | 0 | 64 | min |
maxGeometryOutputComponents | 0 | 64128 (Vulkan Roadmap 2026) | min |
maxGeometryOutputVertices | 0 | 256 | min |
maxGeometryTotalOutputComponents | 0 | 1024 | min |
maxFragmentInputComponents | - | 64112 (Vulkan Roadmap 2026) | min |
maxFragmentOutputAttachments | - | 48 (Vulkan Roadmap 2026) | min |
maxFragmentDualSrcAttachments | 0 | 1 | min |
maxFragmentCombinedOutputResources | - | 4 (Vulkan Core)16 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxComputeSharedMemorySize | - | 1638432768 (Vulkan Roadmap 2026) | min |
maxComputeWorkGroupCount | - | (65535,65535,65535) | min |
maxComputeWorkGroupInvocations | - | 128 (Vulkan Core)256 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxComputeWorkGroupSize | - | (128,128,64) (Vulkan Core)(256,256,64) (Vulkan Roadmap 2022, Vulkan 1.4) | min |
subgroupSize | - | 1/4 (Vulkan Core)4 (Vulkan Roadmap 2022) | min |
subgroupSupportedStages | - | VK_SHADER_STAGE_COMPUTE_BIT(Vulkan Core)VK_SHADER_STAGE_COMPUTE_BIT|VK_SHADER_STAGE_FRAGMENT_BIT(Vulkan Roadmap 2022) | bitfield |
subgroupSupportedOperations | - | VK_SUBGROUP_FEATURE_BASIC_BIT(Vulkan Core)VK_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_BIT(Vulkan Roadmap 2022) | bitfield |
shaderSignedZeroInfNanPreserveFloat16 | - | - (Vulkan Core)VK_TRUE(Vulkan Roadmap 2022, Vulkan 1.4) | Boolean |
shaderSignedZeroInfNanPreserveFloat32 | - | - (Vulkan Core)VK_TRUE(Vulkan Roadmap 2022, Vulkan 1.4) | Boolean |
shaderRoundingModeRTEFloat16 | - | VK_FALSE(Vulkan Core)VK_TRUE(Vulkan Roadmap 2024) | Boolean |
shaderRoundingModeRTEFloat32 | - | VK_FALSE(Vulkan Core)VK_TRUE(Vulkan Roadmap 2024) | Boolean |
maxSubgroupSize | - | - (Vulkan Core)4 (Vulkan Roadmap 2022) | min |
subPixelPrecisionBits | - | 48 (Vulkan Roadmap 2026) | min |
subTexelPrecisionBits | - | 4 (Vulkan Core)8 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
mipmapPrecisionBits | - | 4 (Vulkan Core)6 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxDrawIndexedIndexValue | 224-1 | 232-1 | min |
maxDrawIndirectCount | 1 | 216-1 | min |
maxSamplerLodBias | - | 2 (Vulkan Core)14 (Vulkan Roadmap 2022, Vulkan 1.4) | min |
maxSamplerAnisotropy | 1 | 16 | min |
maxViewports | 1 | 16 | min |
maxViewportDimensions3 | - | (4096,4096) (Vulkan Core)(7680,7680) (Vulkan 1.4)(8192,8192) (Vulkan Roadmap 2026) | min |
viewportBoundsRange4 | - | (-8192,8191) (Vulkan Core)(-15360,15359) (Vulkan 1.4) | (max,min) |
viewportSubPixelBits | - | 0 | min |
minMemoryMapAlignment | - | 64 | min |
minTexelBufferOffsetAlignment | - | 256 | max |
minUniformBufferOffsetAlignment | - | 256 | max |
minStorageBufferOffsetAlignment | - | 256 | max |
minTexelOffset | - | -8 | max |
maxTexelOffset | - | 7 | min |
minTexelGatherOffset | 0 | -8 | max |
maxTexelGatherOffset | 0 | 7 | min |
minInterpolationOffset | 0.0 | -0.55 | max |
maxInterpolationOffset | 0.0 | 0.5 - (1 ULP)5 | min |
subPixelInterpolationOffsetBits | 0 | 45 | min |
maxFramebufferWidth | - | 4096 (Vulkan Core)7680 (Vulkan 1.4)8192 (Vulkan Roadmap 2026) | min |
maxFramebufferHeight | - | 4096 (Vulkan Core)7680 (Vulkan 1.4)8192 (Vulkan Roadmap 2026) | min |
maxFramebufferLayers | - | 256 | min |
framebufferColorSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
framebufferIntegerColorSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT) | min |
framebufferDepthSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
framebufferStencilSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
framebufferNoAttachmentsSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
maxColorAttachments | - | 4 (Vulkan Core)7 (Vulkan Roadmap 2022)8 (Vulkan Roadmap 2024, Vulkan 1.4) | min |
sampledImageColorSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
sampledImageIntegerSampleCounts | - | VK_SAMPLE_COUNT_1_BIT | min |
sampledImageDepthSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
sampledImageStencilSampleCounts | - | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
storageImageSampleCounts | VK_SAMPLE_COUNT_1_BIT | (VK_SAMPLE_COUNT_1_BIT|VK_SAMPLE_COUNT_4_BIT) | min |
maxSampleMaskWords | - | 1 | min |
timestampComputeAndGraphics | - | - (Vulkan Core)VK_TRUE(Vulkan Roadmap 2024, Vulkan 1.4) | Boolean |
timestampPeriod | - | - | duration |
maxClipDistances | 0 | 8 | min |
maxCullDistances | 0 | 8 | min |
maxCombinedClipAndCullDistances | 0 | 8 | min |
discreteQueuePriorities | - | 2 | min |
pointSizeRange | (1.0,1.0) | (1.0,64.0 - ULP)6(Vulkan Core)(1.0,256.0 -pointSizeGranularity) (Vulkan 1.4) | (max,min) |
lineWidthRange | (1.0,1.0) | (1.0,8.0 - ULP)7 | (max,min) |
pointSizeGranularity | 0.0 | 1.06(Vulkan Core)0.125 (Vulkan Roadmap 2022, Vulkan 1.4) | max, fixed point increment |
lineWidthGranularity | 0.0 | 1.07(Vulkan Core)0.5 (Vulkan Roadmap 2022, Vulkan 1.4) | max, fixed point increment |
strictLines | - | - | implementation-dependent |
standardSampleLocations | - | - (Vulkan Core)VK_TRUE(Vulkan Roadmap 2022, Vulkan 1.4) | Boolean |
optimalBufferCopyOffsetAlignment | - | - | recommendation |
optimalBufferCopyRowPitchAlignment | - | - | recommendation |
nonCoherentAtomSize | - | 256 | max |
maxPushDescriptors | - | 32 | min |
maxMultiviewViewCount | - | 6 | min |
maxMultiviewInstanceIndex | - | 227-1 | min |
maxDiscardRectangles | 0 | 4 | min |
sampleLocationSampleCounts | - | VK_SAMPLE_COUNT_4_BIT | min |
maxSampleLocationGridSize | - | (1,1) | min |
sampleLocationCoordinateRange | - | (0.0, 0.9375) | (max,min) |
sampleLocationSubPixelBits | - | 4 | min |
variableSampleLocations | - | VK_FALSE | implementation-dependent |
nativeUnalignedPerformance | - | VK_FALSE | implementation-dependent |
minImportedHostPointerAlignment | - | 65536 | max |
perViewPositionAllComponents | - | - | implementation-dependent |
filterMinmaxSingleComponentFormats | - | - | implementation-dependent |
filterMinmaxImageComponentMapping | - | - | implementation-dependent |
advancedBlendMaxColorAttachments | - | 1 | min |
advancedBlendIndependentBlend | - | VK_FALSE | implementation-dependent |
advancedBlendNonPremultipliedSrcColor | - | VK_FALSE | implementation-dependent |
advancedBlendNonPremultipliedDstColor | - | VK_FALSE | implementation-dependent |
advancedBlendCorrelatedOverlap | - | VK_FALSE | implementation-dependent |
advancedBlendAllOperations | - | VK_FALSE | implementation-dependent |
maxPerSetDescriptors | - | 1024 | min |
maxMemoryAllocationSize | - | 230 | min |
maxBufferSize | - | 230 | min |
primitiveOverestimationSize | - | 0.0 | min |
maxExtraPrimitiveOverestimationSize | - | 0.0 | min |
extraPrimitiveOverestimationSizeGranularity | - | 0.0 | min |
primitiveUnderestimation | - | VK_FALSE | implementation-dependent |
conservativePointAndLineRasterization | - | VK_FALSE | implementation-dependent |
degenerateTrianglesRasterized | - | VK_FALSE | implementation-dependent |
degenerateLinesRasterized | - | VK_FALSE | implementation-dependent |
fullyCoveredFragmentShaderInputVariable | - | VK_FALSE | implementation-dependent |
conservativeRasterizationPostDepthCoverage | - | VK_FALSE | implementation-dependent |
maxUpdateAfterBindDescriptorsInAllPools | 0 | 500000 | min |
shaderUniformBufferArrayNonUniformIndexingNative | - | VK_FALSE | implementation-dependent |
shaderSampledImageArrayNonUniformIndexingNative | - | VK_FALSE | implementation-dependent |
shaderStorageBufferArrayNonUniformIndexingNative | - | VK_FALSE | implementation-dependent |
shaderStorageImageArrayNonUniformIndexingNative | - | VK_FALSE | implementation-dependent |
shaderInputAttachmentArrayNonUniformIndexingNative | - | VK_FALSE | implementation-dependent |
maxPerStageDescriptorUpdateAfterBindSamplers | 09 | 5000009 | min |
maxPerStageDescriptorUpdateAfterBindUniformBuffers | 09 | 129 | min |
maxPerStageDescriptorUpdateAfterBindStorageBuffers | 09 | 5000009 | min |
maxPerStageDescriptorUpdateAfterBindSampledImages | 09 | 5000009 | min |
maxPerStageDescriptorUpdateAfterBindStorageImages | 09 | 5000009 | min |
maxPerStageDescriptorUpdateAfterBindInputAttachments | 09 | 49(Vulkan Core)7 (Vulkan Roadmap 2022) | min |
maxPerStageUpdateAfterBindResources | 09 | 5000009 | min |
maxDescriptorSetUpdateAfterBindSamplers | 09 | 5000009 | min |
maxDescriptorSetUpdateAfterBindUniformBuffers | 09 | 7289 | min,n× PerStage |
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic | 09 | 89 | min |
maxDescriptorSetUpdateAfterBindStorageBuffers | 09 | 5000009 | min |
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic | 09 | 49 | min |
maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic | 09 | maxDescriptorSetUpdateAfterBindUniformBuffersDynamic | min |
maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic | 09 | maxDescriptorSetUpdateAfterBindStorageBuffersDynamic | min |
maxDescriptorSetUpdateAfterBindTotalBuffersDynamic | 09 | maxDescriptorSetUpdateAfterBindUniformBuffersDynamic + maxDescriptorSetUpdateAfterBindStorageBuffersDynamic | min |
maxDescriptorSetUpdateAfterBindSampledImages | 09 | 5000009 | min |
maxDescriptorSetUpdateAfterBindStorageImages | 09 | 5000009 | min |
maxDescriptorSetUpdateAfterBindInputAttachments | 09 | 49 | min |
maxInlineUniformBlockSize | - | 256 | min |
maxPerStageDescriptorInlineUniformBlocks | - | 4 | min |
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks | - | 4 | min |
maxDescriptorSetInlineUniformBlocks | - | 4 | min |
maxDescriptorSetUpdateAfterBindInlineUniformBlocks | - | 4 | min |
maxInlineUniformTotalSize | - | 256 | min |
maxVertexAttribDivisor | - | 216-1 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount | - | 216-1 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskWorkGroupInvocations | - | 32 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskWorkGroupSize | - | (32,1,1) | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskTotalMemorySize | - | 16384 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxTaskOutputCount | - | 216-1 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshWorkGroupInvocations | - | 32 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshWorkGroupSize | - | (32,1,1) | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshTotalMemorySize | - | 16384 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices | - | 256 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives | - | 256 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshMultiviewViewCount | - | 1 | min |
VkPhysicalDeviceMeshShaderPropertiesNV::meshOutputPerVertexGranularity | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesNV::meshOutputPerPrimitiveGranularity | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount | - | 2^22 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount | - | (65535,65535,65535) | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations | - | 128 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize | - | (128,128,128) | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskPayloadSize | - | 16384 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskSharedMemorySize | - | 32768 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskPayloadAndSharedMemorySize | - | 32768 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount | - | 2^22 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount | - | (65535,65535,65535) | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations | - | 128 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize | - | (128,128,128) | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshSharedMemorySize | - | 28672 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshPayloadAndSharedMemorySize | - | 28672 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputMemorySize | - | 32768 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshPayloadAndOutputMemorySize | - | 48128 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputComponents | - | 128 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices | - | 256 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives | - | 256 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputLayers | - | 8 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshMultiviewViewCount | - | 1 | min |
VkPhysicalDeviceMeshShaderPropertiesEXT::meshOutputPerVertexGranularity | 0 | 32 | max |
VkPhysicalDeviceMeshShaderPropertiesEXT::meshOutputPerPrimitiveGranularity | 0 | 32 | max |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxPreferredTaskWorkGroupInvocations | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::maxPreferredMeshWorkGroupInvocations | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::prefersLocalInvocationVertexOutput | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::prefersLocalInvocationPrimitiveOutput | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::prefersCompactVertexOutput | - | - | implementation-dependent |
VkPhysicalDeviceMeshShaderPropertiesEXT::prefersCompactPrimitiveOutput | - | - | implementation-dependent |
maxTransformFeedbackStreams | - | 1 | min |
maxTransformFeedbackBuffers | - | 1 | min |
maxTransformFeedbackBufferSize | - | 227 | min |
maxTransformFeedbackStreamDataSize | - | 512 | min |
maxTransformFeedbackBufferDataSize | - | 512 | min |
maxTransformFeedbackBufferDataStride | - | 512 | min |
transformFeedbackQueries | - | VK_FALSE | implementation-dependent |
transformFeedbackStreamsLinesTriangles | - | VK_FALSE | implementation-dependent |
transformFeedbackRasterizationStreamSelect | - | VK_FALSE | implementation-dependent |
transformFeedbackDraw | - | VK_FALSE | implementation-dependent |
minFragmentDensityTexelSize | - | (1,1) | min |
maxFragmentDensityTexelSize | - | (1,1) | min |
fragmentDensityInvocations | - | - | implementation-dependent |
subsampledLoads | VK_TRUE | VK_FALSE | implementation-dependent |
subsampledCoarseReconstructionEarlyAccess | VK_FALSE | VK_FALSE | implementation-dependent |
maxSubsampledArrayLayers | 2 | 2 | min |
maxDescriptorSetSubsampledSamplers | 1 | 1 | min |
fragmentDensityOffsetGranularity | - | (1024,1024) | max |
maxFragmentDensityMapLayers | - | (2) | max |
VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize | - | 16 | min |
VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth | - | 31 | min |
VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize | - | 32 | exact |
VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth | - | 1 | min |
maxShaderGroupStride | - | 4096 | min |
shaderGroupBaseAlignment | - | 64 | max |
maxGeometryCount | - | 224-1 | min |
maxInstanceCount | - | 224-1 | min |
maxTriangleCount | - | 229-1 | min |
maxPrimitiveCount | - | 229-1 | min |
maxPerStageDescriptorAccelerationStructures | - | 16 | min |
maxPerStageDescriptorUpdateAfterBindAccelerationStructures | - | 5000009 | min |
maxVerticesPerCluster | - | 256 | min |
maxTrianglesPerCluster | - | 256 | min |
clusterScratchByteAlignment | - | 256 | max |
clusterByteAlignment | - | 128 | max |
clusterTemplateByteAlignment | - | 32 | max |
clusterBottomLevelByteAlignment | - | 256 | max |
clusterTemplateBoundsByteAlignment | - | 32 | max |
maxClusterGeometryIndex | - | 224-1 | min |
maxDescriptorSetAccelerationStructures | - | 16 | min |
maxDescriptorSetUpdateAfterBindAccelerationStructures | - | 5000009 | min |
minAccelerationStructureScratchOffsetAlignment | - | 256 | max |
shaderGroupHandleCaptureReplaySize | - | 64 | max |
maxRayDispatchInvocationCount | - | 230 | min |
shaderGroupHandleAlignment | - | 32 | max |
maxRayHitAttributeSize | - | 32 | min |
maxPartitionCount | - | 224-1 | min |
maxTimelineSemaphoreValueDifference | - | 231-1 | min |
lineSubPixelPrecisionBits | - | 4 | min |
maxGraphicsShaderGroupCount | - | 212 | min |
maxIndirectCommandsStreamCount+ (for NV extension) | - | 212 | min |
maxIndirectCommandsStreamStride | - | 2048 | min |
minIndirectCommandsBufferOffsetAlignment | - | 256 | max |
minSequencesCountBufferOffsetAlignment | - | 256 | max |
minSequencesIndexBufferOffsetAlignment | - | 256 | max |
maxIndirectSequenceCount | - | 220 | min |
maxIndirectCommandsTokenCount | - | 16 | min |
maxIndirectCommandsTokenOffset | - | 2047 | min |
maxIndirectPipelineCount | - | 212 | min |
deviceGeneratedCommandsTransformFeedback | - | false | implementation-dependent |
deviceGeneratedCommandsMultiDrawIndirectCount | - | false | implementation-dependent |
maxIndirectShaderObjectCount | 0 | 212 | implementation-dependent |
maxIndirectCommandsIndirectStride | - | 2048 | min |
supportedIndirectCommandsInputModes | - | VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT | min |
supportedIndirectCommandsShaderStages | - | (VK_SHADER_STAGE_COMPUTE_BIT|VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT) | min |
supportedIndirectCommandsShaderStagesPipelineBinding | - | 0 | min |
supportedIndirectCommandsShaderStagesShaderBinding | - | 0 | min |
maxCustomBorderColorSamplers | - | 32 | min |
robustStorageBufferAccessSizeAlignment | - | 4 | max |
robustUniformBufferAccessSizeAlignment | - | 256 | max |
minFragmentShadingRateAttachmentTexelSize | (0,0) | (32,32) | max |
maxFragmentShadingRateAttachmentTexelSize | (0,0) | (8,8) | min |
maxFragmentShadingRateAttachmentTexelSizeAspectRatio | 0 | 1 | min |
primitiveFragmentShadingRateWithMultipleViewports | VK_FALSE | VK_FALSE | implementation-dependent |
layeredShadingRateAttachments | VK_FALSE | VK_FALSE | implementation-dependent |
fragmentShadingRateNonTrivialCombinerOps | - | VK_FALSE | implementation-dependent |
maxFragmentSize | - | (2,2) | min |
maxFragmentSizeAspectRatio | - | 2 | min |
maxFragmentShadingRateCoverageSamples | - | 16 | min |
maxFragmentShadingRateRasterizationSamples | - | VK_SAMPLE_COUNT_4_BIT | min |
fragmentShadingRateWithShaderDepthStencilWrites | - | VK_FALSE | implementation-dependent |
fragmentShadingRateWithSampleMask | - | VK_FALSE | implementation-dependent |
fragmentShadingRateWithShaderSampleMask | - | VK_FALSE | implementation-dependent |
fragmentShadingRateWithConservativeRasterization | - | VK_FALSE | implementation-dependent |
fragmentShadingRateWithFragmentShaderInterlock | - | VK_FALSE | implementation-dependent |
fragmentShadingRateWithCustomSampleLocations | - | VK_FALSE | implementation-dependent |
fragmentShadingRateStrictMultiplyCombiner | - | VK_FALSE | implementation-dependent |
maxFragmentShadingRateInvocationCount | - | VK_SAMPLE_COUNT_4_BIT | min |
combinedImageSamplerDescriptorSingleArray | - | VK_FALSE | implementation-dependent |
bufferlessPushDescriptors | - | VK_FALSE | implementation-dependent |
allowSamplerImageViewPostSubmitCreation | - | VK_FALSE | implementation-dependent |
descriptorBufferOffsetAlignment | - | 256 | max |
maxDescriptorBufferBindings | - | 3 | min |
maxResourceDescriptorBufferBindings | - | 1 | min |
maxSamplerDescriptorBufferBindings | - | 1 | min |
maxEmbeddedImmutableSamplerBindings | - | 1 | min |
maxEmbeddedImmutableSamplers | - | 2032 | min |
bufferCaptureReplayDescriptorDataSize | - | 64 | max |
imageCaptureReplayDescriptorDataSize | - | 64 | max |
imageViewCaptureReplayDescriptorDataSize | - | 64 | max |
samplerCaptureReplayDescriptorDataSize | - | 64 | max |
accelerationStructureCaptureReplayDescriptorDataSize | - | 64 | max |
samplerDescriptorSize | - | 256 | max |
combinedImageSamplerDescriptorSize | - | 256 | max |
sampledImageDescriptorSize | - | 256 | max |
storageImageDescriptorSize | - | 256 | max |
uniformTexelBufferDescriptorSize | - | 256 | max |
robustUniformTexelBufferDescriptorSize | - | 256 | max |
storageTexelBufferDescriptorSize | - | 256 | max |
robustStorageTexelBufferDescriptorSize | - | 256 | max |
uniformBufferDescriptorSize | - | 256 | max |
robustUniformBufferDescriptorSize | - | 256 | max |
storageBufferDescriptorSize | - | 256 | max |
robustStorageBufferDescriptorSize | - | 256 | max |
inputAttachmentDescriptorSize | - | 256 | max |
accelerationStructureDescriptorSize | - | 256 | max |
maxSamplerDescriptorBufferRange | - | 211 × samplerDescriptorSize | min |
maxResourceDescriptorBufferRange | - | (220 - 215) × maxResourceDescriptorSize12 | min |
samplerDescriptorBufferAddressSpaceSize | - | 227 | min |
resourceDescriptorBufferAddressSpaceSize | - | 227 | min |
descriptorBufferAddressSpaceSize | - | 227 | min |
combinedImageSamplerDensityMapDescriptorSize | - | 256 | max |
maxSubpassShadingWorkgroupSizeAspectRatio | 0 | 1 | min |
maxMultiDrawCount | - | 1024 | min |
maxCommandBufferNestingLevel | - | 1 | min |
graphicsPipelineLibraryFastLinking | - | VK_FALSE | implementation-dependent |
graphicsPipelineLibraryIndependentInterpolationDecoration | - | VK_FALSE | implementation-dependent |
triStripVertexOrderIndependentOfProvokingVertex | - | VK_FALSE | implementation-dependent |
maxWeightFilterPhases | - | 1024 | min |
maxWeightFilterDimension | - | (64,64) | min |
maxBlockMatchRegion | - | (64,64) | min |
maxBoxFilterBlockSize | - | (64,64) | min |
dynamicPrimitiveTopologyUnrestricted | - | - | implementation-dependent |
maxOpacity2StateSubdivisionLevel | - | 3 | min |
maxOpacity4StateSubdivisionLevel | - | 3 | min |
maxDecompressionIndirectCount | 1 | 216-1 | min |
maxWorkGroupCount | - | (65536,1,1) | min |
maxWorkGroupSize | - | (32,1,1) | min |
maxOutputClusterCount | - | 1024 | min |
indirectBufferOffsetAlignment | - | - | implementation-dependent |
maxExecutionGraphDepth | - | 32 | min |
maxExecutionGraphShaderOutputNodes | - | 256 | min |
maxExecutionGraphShaderPayloadSize | - | 32768 | min |
maxExecutionGraphShaderPayloadCount | - | 256 | min |
executionGraphDispatchAddressAlignment | - | 4 | max |
maxExecutionGraphVertexBufferBindings | - | 1024 | min |
maxExecutionGraphWorkgroupCount | - | (65535,65535,65535) | min |
maxExecutionGraphWorkgroups | - | 224-1 | min |
extendedSparseAddressSpaceSize | 0 | sparseAddressSpaceSize | min |
renderPassStripeGranularity | - | (64,64) | max |
maxRenderPassStripes | - | 32 | min |
minPlacedMemoryMapAlignment | - | 65536 | max |
supportedImageAlignmentMask | - | 1 | min |
separateDepthStencilAttachmentAccess | VK_FALSE | - | implementation-dependent |
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize | - | subgroupSize × 2 | min |
cooperativeMatrixFlexibleDimensionsMaxDimension | - | 256 | min |
cooperativeMatrixWorkgroupScopeReservedSharedMemory | - | maxComputeSharedMemorySize / 2 | max |
maxCooperativeVectorComponents | - | 128 | min |
maxVectorComponents | - | 1024 | min |
maxApronSize | - | 1 | min |
preferNonCoherent | - | - | implementation-dependent |
tileGranularity | - | (16,16) | min |
maxTileShadingRate | - | (8,8) | min |
maxTensorDimensionCount | - | 4 | min |
maxTensorElements | - | 65536 | min |
maxPerDimensionTensorElements | - | 65536 | min |
maxTensorStride | - | 65536 | min |
maxTensorSize | - | 65536 | min |
maxTensorShaderAccessArrayLength | - | 4 | min |
maxTensorShaderAccessSize | - | 4 | min |
maxDescriptorSetStorageTensors | - | 16 | min |
maxPerStageDescriptorSetStorageTensors | - | 16 | min |
maxDescriptorSetUpdateAfterBindStorageTensors | 0 | 500000 | min |
maxPerStageDescriptorUpdateAfterBindStorageTensors | 0 | 500000 | min |
shaderTensorSupportedStages | - | VK_SHADER_STAGE_COMPUTE_BIT | bitfield |
maxShaderBindingTableRecordIndex | - | 228-1 | min |
resolveSrgbFormatAppliesTransferFunction | - | - | implementation-dependent |
resolveSrgbFormatSupportsTransferFunctionControl | VK_FALSE | VK_FALSE | min |
samplerHeapAlignment | - | 65536 | max |
resourceHeapAlignment | - | 65536 | max |
maxSamplerHeapSize | - | max( 4000 × samplerDescriptorSize + minSamplerHeapReservedRange, 2048 × samplerDescriptorSize + minSamplerHeapReservedRangeWithEmbedded) | min |
maxResourceHeapSize | - | (220 - 215) × max(imageDescriptorSize, bufferDescriptorSize) + minResourceHeapReservedRange | min |
minSamplerHeapReservedRange | - | 96 × samplerDescriptorSize | max |
minSamplerHeapReservedRangeWithEmbedded | - | 2048 × samplerDescriptorSize | max |
minResourceHeapReservedRange | - | 215 × max(imageDescriptorSize, bufferDescriptorSize) | max |
samplerDescriptorSize | - | 32 | max |
imageDescriptorSize | - | 64 | max |
bufferDescriptorSize | - | 128 | max |
samplerDescriptorAlignment | - | 32 | max |
imageDescriptorAlignment | - | 64 | max |
bufferDescriptorAlignment | - | 128 | max |
maxPushDataSize | - | 256 | min |
maxDescriptorHeapEmbeddedSamplers | - | 2032 | min |
samplerYcbcrConversionCount | - | 3 | max |
imageCaptureReplayOpaqueDataSize | - | - | implementation-dependent |
numMetrics | - | 1 | min |
perBasicBlockGranularity | - | VK_FALSE | max |
maxShaderAbortMessageSize | 0 | 65536 | min |
maxDeviceFaultCount | 0 | 1 | min |