Resource Limits (Direct3D 11)

This topic contains a list of resources that Direct3D 11 supports (specifically feature level 11 or 9.x hardware).

Resource limits for feature level 11 hardware

All of these resource limits are defined as constants in D3d11.h.

Number of elements in a constant bufferD3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
Number of texels (independent of struct size) in a bufferD3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (2²⁷) texels
Texture1D U dimensionD3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
Texture1DArray dimensionD3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048 array slices)
Texture2D U/V dimensionD3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
Texture2DArray dimensionD3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048 array slices)
Texture3D U/V/W dimensionD3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
TextureCube dimensionD3D11_REQ_TEXTURECUBE_DIMENSION (16384)
Resource size (in MB) for any of the preceding resources¹

min(max(128,0.25f * (amount of dedicated VRAM)), 2048) MB




Anisotropic filtering maxanisotropyD3D11_REQ_MAXANISOTROPY (16)
Resource dimension addressable by filtering hardwareD3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) per dimension
Resource size (in MB) addressable by IA (input or vertex data) or VS/GS/PS (point sample)¹

max(128,0.25f * (amount of dedicated VRAM)) MB



Total number of resource views per context (Each array counts as 1) (all view types have shared limit)D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (2²⁰)
Buffer structure size (multi-element)D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048 bytes)
Stream output sizeSame as the number of texels in a buffer (see preceding)
Draw or DrawInstanced vertex count (including instancing)D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (2³²)
DrawIndexed[Instanced]() vertex count (including instancing)D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (2³²)
GS invocation output data (components * vertices)D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
Total number of sampler objects per contextD3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
Total number of viewport/scissor objects per pipelineD3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
Total number of clip/cull distances per vertexD3D11_CLIP_OR_CULL_DISTANCE_COUNT (8)
Total number of blend objects per contextD3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
Total number of depth/stencil objects per contextD3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
Total number of rasterizer state objects per contextD3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
Maximum per-pixel sample count during multisamplingD3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
Shader resource vertex-element count (four 32-bit components)D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
Common-shader core (four 32-bit components) temp-register count (r# + indexable x#[n])D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
Common-shader core constant-buffer slotsD3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1 set aside for an immediate constant buffer in shaders)
Common-shader core input-resource slotsD3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
Common-shader core sampler slotsD3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
Common-shader core subroutine-nesting limitD3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
Common-shader core flow-control nesting limitD3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
Vertex shader input-register count (four 32-bit components)D3D11_VS_INPUT_REGISTER_COUNT (32)
Vertex shader output-register count (four 32-bit components)D3D11_VS_OUTPUT_REGISTER_COUNT (32)
Geometry shader input-register count (four 32-bit components)D3D11_GS_INPUT_REGISTER_COUNT (32)
Geometry shader output-register count (four 32-bit components)D3D11_GS_OUTPUT_REGISTER_COUNT (32)
Pixel shader input-register count (four 32-bit components)D3D11_PS_INPUT_REGISTER_COUNT (32)
Pixel shader output slots²
Pixel shader output depth register count(one 32-bit component)D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
Input assembler index input resource slotsD3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
Input assembler vertex input resource slotsD3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
Hull shader control point input-register count (four 32-bit components)D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
Hull shader number of input control pointsD3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Hull shader control point output-register count (four 32-bit components)D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)³
Hull shader number of output control pointsD3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)³
Hull shader patch constant output-register count (four 32-bit components)D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Domain shader control point input-register count (four 32-bit components)D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)³
Domain shader number of input control pointsD3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)³
Domain shader patch constant input-register count (four 32-bit components)D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Domain shader tessellated vertex output-register count (four 32-bit components)D3D11_DS_OUTPUT_REGISTER_COUNT (32)
Compute shader unordered access view (UAV) slotsD3D11_PS_CS_UAV_REGISTER_COUNT (8)⁴
Resource tile size in bytesD3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )


¹An app can try to allocate more memory for a resource than the maximum resource size specifies. That is, the Direct3D 11 runtime allows these memory allocation attempts in the event that the hardware might support them. However, the Direct3D 11 runtime only guarantees that allocations within the maximum resource size are supported by all feature level 11 hardware. If an app tries to allocate memory for a resource within the maximum resource size, the runtime fails the attempt only if the operating system runs out of resources. If an app tries to allocate memory for a resource above the maximum resource size, the runtime can fail the attempt because either the operating system is overextended or the hardware does not support allocations above the maximum resource size. The debug layer only checks D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) MB.

²The pixel shader output slots are shared between pixel output registers (four 32-bit components) and UAVs.

³The total number of components for all hull shader to domain shader control points is limited to 3968, which is 128 less than the maximum control points times the maximum control point registers times four components.

⁴For compute shader profiles CS_4_0 and CS_4_1 there is only 1 UAV available. For more information about shader profiles, see Shader Model 5.

Resource limits for feature level 9.x hardware

All of these 9.x feature level resource limits are defined as constants in D3dcommon.h.

Feature level 9_1 texture1D U dimensionD3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION (2048)
Feature level 9_3 texture1D U dimensionD3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (4096)
Feature level 9_1 texture2D U/V dimensionD3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048)
Feature level 9_3 texture2D U/V dimensionD3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096)
Feature level 9_1 texture3D U/V/W dimensionD3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (256)
Feature level 9_1 textureCube dimensionD3D_FL9_1_REQ_TEXTURECUBE_DIMENSION (512)
Feature level 9_3 textureCube dimensionD3D_FL9_3_REQ_TEXTURECUBE_DIMENSION (4096)
Feature level 9_1 anisotropic filtering maxanisotropy defaultD3D_FL9_1_DEFAULT_MAX_ANISOTROPY (2)
Feature level 9_1 maximum input assembler primitivesD3D_FL9_1_IA_PRIMITIVE_MAX_COUNT (65535)
Feature level 9_2 maximum input assembler primitivesD3D_FL9_2_IA_PRIMITIVE_MAX_COUNT (1048575)
Feature level 9_1 simultaneous render targetsD3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT (1)
Feature level 9_3 simultaneous render targetsD3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT (4)
Feature level 9_1 maximum texture repeatD3D_FL9_1_MAX_TEXTURE_REPEAT (128)
Feature level 9_2 maximum texture repeatD3D_FL9_2_MAX_TEXTURE_REPEAT (2048)
Feature level 9_3 maximum texture repeatD3D_FL9_3_MAX_TEXTURE_REPEAT (8192)


Related topics