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.

typedef struct VkPhysicalDeviceLimits { uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t VkDeviceSize VkDeviceSize uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t maxImageDimension1D; maxImageDimension2D; maxImageDimension3D; maxImageDimensionCube; maxImageArrayLayers; maxTexelBufferElements; maxUniformBufferRange; maxStorageBufferRange; maxPushConstantsSize; maxMemoryAllocationCount; maxSamplerAllocationCount; bufferImageGranularity; sparseAddressSpaceSize; maxBoundDescriptorSets; maxPerStageDescriptorSamplers; maxPerStageDescriptorUniformBuffers; maxPerStageDescriptorStorageBuffers; maxPerStageDescriptorSampledImages; maxPerStageDescriptorStorageImages; maxPerStageDescriptorInputAttachments; maxPerStageResources; maxDescriptorSetSamplers; maxDescriptorSetUniformBuffers; maxDescriptorSetUniformBuffersDynamic; maxDescriptorSetStorageBuffers; maxDescriptorSetStorageBuffersDynamic; maxDescriptorSetSampledImages; maxDescriptorSetStorageImages; maxDescriptorSetInputAttachments; maxVertexInputAttributes; maxVertexInputBindings; maxVertexInputAttributeOffset; uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t float float uint32_t uint32_t float uint32_t size_t VkDeviceSize VkDeviceSize VkDeviceSize int32_t uint32_t int32_t uint32_t float float uint32_t uint32_t uint32_t uint32_t VkSampleCountFlags VkSampleCountFlags VkSampleCountFlags maxVertexInputBindingStride; maxVertexOutputComponents; maxTessellationGenerationLevel; maxTessellationPatchSize; maxTessellationControlPerVertexInputComponents; maxTessellationControlPerVertexOutputComponents; maxTessellationControlPerPatchOutputComponents; maxTessellationControlTotalOutputComponents; maxTessellationEvaluationInputComponents; maxTessellationEvaluationOutputComponents; maxGeometryShaderInvocations; maxGeometryInputComponents; maxGeometryOutputComponents; maxGeometryOutputVertices; maxGeometryTotalOutputComponents; maxFragmentInputComponents; maxFragmentOutputAttachments; maxFragmentDualSrcAttachments; maxFragmentCombinedOutputResources; maxComputeSharedMemorySize; maxComputeWorkGroupCount[3]; maxComputeWorkGroupInvocations; maxComputeWorkGroupSize[3]; subPixelPrecisionBits; subTexelPrecisionBits; mipmapPrecisionBits; maxDrawIndexedIndexValue; maxDrawIndirectCount; maxSamplerLodBias; maxSamplerAnisotropy; maxViewports; maxViewportDimensions[2]; viewportBoundsRange[2]; viewportSubPixelBits; minMemoryMapAlignment; minTexelBufferOffsetAlignment; minUniformBufferOffsetAlignment; minStorageBufferOffsetAlignment; minTexelOffset; maxTexelOffset; minTexelGatherOffset; maxTexelGatherOffset; minInterpolationOffset; maxInterpolationOffset; subPixelInterpolationOffsetBits; maxFramebufferWidth; maxFramebufferHeight; maxFramebufferLayers; framebufferColorSampleCounts; framebufferDepthSampleCounts; framebufferStencilSampleCounts; VkSampleCountFlags uint32_t VkSampleCountFlags VkSampleCountFlags VkSampleCountFlags VkSampleCountFlags VkSampleCountFlags uint32_t VkBool32 float uint32_t uint32_t uint32_t uint32_t float float float float VkBool32 VkBool32 VkDeviceSize VkDeviceSize VkDeviceSize } VkPhysicalDeviceLimits; framebufferNoAttachmentsSampleCounts; maxColorAttachments; sampledImageColorSampleCounts; sampledImageIntegerSampleCounts; sampledImageDepthSampleCounts; sampledImageStencilSampleCounts; storageImageSampleCounts; maxSampleMaskWords; timestampComputeAndGraphics; timestampPeriod; maxClipDistances; maxCullDistances; maxCombinedClipAndCullDistances; discreteQueuePriorities; pointSizeRange[2]; lineWidthRange[2]; pointSizeGranularity; lineWidthGranularity; strictLines; standardSampleLocations; optimalBufferCopyOffsetAlignment; optimalBufferCopyRowPitchAlignment; nonCoherentAtomSize;

Limit Requirements

Profile Limits

Roadmap 2022

本节教程就到此结束,希望大家继续阅读我之后的教程。

谢谢大家,再见!


原创技术文章,撰写不易,转载请注明出处:电子设备中的画家|王烁 于 2021 年 5 月 10 日发表,原文链接(http://geekfaner.com/shineengine/blog20_Vulkanv1.2_6.html)