in Vulkan
Spec minimums (what you can rely on everywhere)
| Limit | 1.0–1.3 required | 1.4 required |
|---|---|---|
maxPushConstantsSize | 128 bytes | 256 bytes |
maxUniformBufferRange | 16384 (16 KB) | 65536 (64 KB) |
maxStorageBufferRange | 134217728 (2²⁷, 128 MB) | unchanged |
| https://docs.vulkan.org/refpages/latest/refpages/source/Required_Limits.html |
in DirectX
| Limit | Value | Constant / source |
|---|---|---|
| Root constants (max) | 256 bytes | 64 DWORDs, root signature budget |
| Root constant granularity | 4 bytes | 1 DWORD each |
| Constant buffer (max) | 65536 bytes (64 KB) | D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096 × 16 B |
| Constant buffer alignment | 256 bytes | D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT |
| Structured / raw buffer (max) | no documented limit | — |
| Structured / raw buffer alignment | 16 bytes | D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16 |
| Typed buffer view (max texels) | 134217728 (2²⁷) | D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27 |
| Resource placement alignment | 65536 bytes (64 KB) | D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT |
https://learn.microsoft.com/en-us/windows/win32/direct3d12/hardware-support https://learn.microsoft.com/en-us/windows/win32/direct3d12/root-signature-limits