Limites de ressources (Direct3D 11)

Cette rubrique contient une liste de ressources que Direct3D 11 prend en charge (en particulier le matériel de niveau de fonctionnalité 11 ou 9.x).

Limites de ressources pour le matériel de niveau de fonctionnalité 11

Toutes ces limites de ressources sont définies en tant que constantes dans D3d11.h.

Ressource Limite
Nombre d’éléments dans une mémoire tampon constante D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
Nombre de texels (indépendamment de la taille du struct) dans une mémoire tampon D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (2 7) texels
Texture1D Dimension U D3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
Dimension Texture1DArray D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (tranches de tableau 2048)
Dimension U/V Texture2D D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
Dimension Texture2DArray D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (tranches de tableau 2048)
Dimension U/V/W texture3D D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
Dimension TextureCube D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
Taille de ressource (en Mo) pour l’une des ressources précédentes min(max(128,0.25f * (quantité de VRAM dédiée)), 2048) Mo
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0,25f)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
Maxanisotropie de filtrage anisotrope D3D11_REQ_MAXANISOTROPY (16)
Dimension de ressource adressable en filtrant le matériel D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) par dimension
Taille de ressource (en Mo) adressable par IA (données d’entrée ou de vertex) ou VS/GS/PS (exemple de points) max(128,0.25f * (quantité de VRAM dédiée)) Mo
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0,25f)
Nombre total d’affichages de ressources par contexte (Chaque tableau compte 1) (tous les types d’affichages ont une limite partagée) D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (2 )
Taille de la structure de mémoire tampon (multi-éléments) D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2 048 octets)
Taille de la sortie du flux Identique au nombre de texels dans une mémoire tampon (voir précédent)
Draw ou DrawInstanced vertex count (y compris l’instanciation) D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (2 )
DrawIndexed[Instanced]() nombre de vertex (y compris l’instanciation) D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (2 )
Données de sortie d’appel GS (composants * sommets) D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
Nombre total d’objets sampler par contexte D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
Nombre total d’objets de fenêtre d’affichage/scissor par pipeline D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
Nombre total de distances de découpage/abattage par sommet D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8)
Nombre total d’objets de fusion par contexte D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
Nombre total d’objets de profondeur/gabarit par contexte D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
Nombre total d’objets d’état de rastériseur par contexte D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
Nombre maximal d’échantillons par pixel pendant le multi-échantillonnage D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
Nombre d’éléments de vertex de ressources de nuanceur (quatre composants 32 bits) D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
Common-shader core (quatre composants 32 bits) temp-register count (r# + indexable x#[n]) D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
Emplacements de mémoire tampon constante de cœur de nuanceur commun D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1 mise de côté pour une mémoire tampon constante immédiate dans les nuanceurs)
Emplacements d’entrée-ressource principaux common-shader D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
Emplacements d’échantillonnage common-shader core D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
Limite d’imbrication de sous-routine du noyau common-shader D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
Limite d’imbrication du contrôle de flux common-shader D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
Nombre de registres d’entrée du nuanceur de vertex (quatre composants 32 bits) D3D11_VS_INPUT_REGISTER_COUNT (32)
Nombre de registres de sortie du nuanceur de vertex (quatre composants 32 bits) D3D11_VS_OUTPUT_REGISTER_COUNT (32)
Nombre de registres d’entrée du nuanceur Geometry (quatre composants 32 bits) D3D11_GS_INPUT_REGISTER_COUNT (32)
Nombre de registres de sortie du nuanceur Geometry (quatre composants 32 bits) D3D11_GS_OUTPUT_REGISTER_COUNT (32)
Nombre de registres d’entrée du nuanceur de pixels (quatre composants 32 bits) D3D11_PS_INPUT_REGISTER_COUNT (32)
Emplacements de sortie du nuanceur de pixels 8
Nombre de registres de profondeur de sortie du nuanceur de pixels (un composant 32 bits) D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
Emplacements de ressources d’entrée d’index d’assembleur d’entrée D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
Emplacements de ressources d’entrée de vertex de l’assembleur d’entrée D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
Nombre de registres d’entrée de point de contrôle du nuanceur hull (quatre composants 32 bits) D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
Nombre de points de contrôle d’entrée du nuanceur de coque D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Nombre de registres de sortie de point de contrôle du nuanceur hull (quatre composants 32 bits) D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)
Nombre de points de contrôle de sortie du nuanceur de coque D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Nombre de registres de sortie constants du nuanceur de nuanceur hull (quatre composants 32 bits) D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Nombre de registres d’entrée de point de contrôle du nuanceur de domaine (quatre composants 32 bits) D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)
Nombre de points de contrôle d’entrée du nuanceur de domaine D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Nombre de registres d’entrée constants correctifs du nuanceur de domaine (quatre composants 32 bits) D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Nombre de registres de sortie de vertex de nuanceur de domaine (quatre composants 32 bits) D3D11_DS_OUTPUT_REGISTER_COUNT (32)
Emplacements d’affichage d’accès non ordonné (UAV) du nuanceur de calcul D3D11_PS_CS_UAV_REGISTER_COUNT (8)4
Taille de la vignette de ressource en octets D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )

Une application peut essayer d’allouer plus de mémoire pour une ressource que la taille maximale de la ressource spécifiée. Autrement dit, le runtime Direct3D 11 autorise ces tentatives d’allocation de mémoire dans le cas où le matériel peut les prendre en charge. Toutefois, le runtime Direct3D 11 garantit uniquement que les allocations dans la taille maximale des ressources sont prises en charge par tout le matériel de niveau de fonctionnalité 11. Si une application tente d’allouer de la mémoire pour une ressource dans la taille maximale de la ressource, le runtime échoue uniquement si le système d’exploitation manque de ressources. Si une application tente d’allouer de la mémoire pour une ressource supérieure à la taille maximale de la ressource, le runtime peut échouer, car le système d’exploitation est surextendé ou le matériel ne prend pas en charge les allocations au-delà de la taille maximale des ressources. La couche de débogage vérifie uniquement D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) Mo.

Les emplacements de sortie du nuanceur de pixels sont partagés entre les registres de sortie de pixels (quatre composants 32 bits) et les UAV.

Le nombre total de composants pour tous les points de contrôle du nuanceur de coque à celui du nuanceur de domaine est limité à 3968, soit 128 de moins que le nombre maximal de points de contrôle fois que le point de contrôle maximal inscrit fois quatre composants.

4Pour les profils de nuanceur de calcul CS_4_0 et CS_4_1 il n’y a que 1 UAV disponible. Pour plus d’informations sur les profils de nuanceur, consultez Shader Model 5.

Limites de ressources pour le matériel de niveau de fonctionnalité 9.x

Toutes ces limites de ressources au niveau des fonctionnalités 9.x sont définies en tant que constantes dans D3dcommon.h.

Ressource Limite
Dimension U du niveau de fonctionnalité 9_1 texture1D D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION (2048)
Dimension U du niveau de fonctionnalité 9_3 texture1D D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (4096)
Dimension U/V du niveau de fonctionnalité 9_1 texture2D D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048)
Dimension U/V du niveau de fonctionnalité 9_3 texture2D D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096)
Niveau de fonctionnalité 9_1 texture3D dimension U/V/W D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (256)
Dimension textureCube de niveau de fonctionnalité 9_1 D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION (512)
Dimension textureCube de niveau de fonctionnalité 9_3 D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION (4096)
Niveau de fonctionnalité 9_1 filtrage anisotropique par défaut maxanisotropy D3D_FL9_1_DEFAULT_MAX_ANISOTROPY (2)
Primitives d’assembleur d’entrée maximale de niveau de fonctionnalité 9_1 D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT (65535)
Primitives d’assembleur d’entrée maximale de niveau de fonctionnalité 9_2 D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT (1048575)
Cibles de rendu simultanées de niveau de fonctionnalité 9_1 D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT (1)
Cibles de rendu simultanées de niveau de fonctionnalité 9_3 D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT (4)
Répétition de texture maximale au niveau de fonctionnalité 9_1 D3D_FL9_1_MAX_TEXTURE_REPEAT (128)
Répétition de texture maximale de niveau de fonctionnalité 9_2 D3D_FL9_2_MAX_TEXTURE_REPEAT (2048)
Répétition de texture maximale de niveau de fonctionnalité 9_3 D3D_FL9_3_MAX_TEXTURE_REPEAT (8192)

Ressources