Ressourcenlimits (Direct3D 11)
Dieses Thema enthält eine Liste der Ressourcen, die Direct3D 11 unterstützt (insbesondere Hardware der Featureebene 11 oder 9.x).
- Ressourcenlimits für Hardware der Featureebene 11
- Ressourcenlimits für Hardware auf Featureebene 9.x
- Zugehörige Themen
Ressourcenlimits für Hardware der Featureebene 11
Alle diese Ressourcengrenzwerte werden in D3d11.h als Konstanten definiert.
Resource | Begrenzung |
---|---|
Anzahl der Elemente in einem konstanten Puffer | D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096) |
Anzahl der Texel (unabhängig von der Strukturgröße) in einem Puffer | D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (2 7) texels |
Textur1D U-Dimension | D3D11_REQ_TEXTURE1D_U_DIMENSION (16384) |
Textur1DArray-Dimension | D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048 Array-Slices) |
Texture2D U/V-Dimension | D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) |
Texture2DArray-Dimension | D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048 Array-Slices) |
Texture3D U/V/W-Dimension | D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048) |
TextureCube-Dimension | D3D11_REQ_TEXTURECUBE_DIMENSION (16384) |
Ressourcengröße (in MB) für eine der vorherigen Ressourcen | min(max(128,0.25f * (Menge des dedizierten VRAM)), 2048) MB 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) |
Anisotrope Filterung Maxanisotropie | D3D11_REQ_MAXANISOTROPY (16) |
Ressourcendimension, die durch Filtern von Hardware adressierbar ist | D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) pro Dimension |
Ressourcengröße (in MB) adressierbar durch IA (Eingabe- oder Vertexdaten) oder VS/GS/PS (Punktbeispiel) | max(128,0,25f * (Anzahl des dedizierten VRAM)) MB D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0,25f) |
Gesamtanzahl von Ressourcensichten pro Kontext (Jedes Array zählt als 1) (alle Ansichtstypen haben ein freigegebenes Limit) | D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (2 ) |
Pufferstrukturgröße (multielement) | D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048 Bytes) |
Streamausgabegröße | Identisch mit der Anzahl von Texels in einem Puffer (siehe oben) |
Zeichnen oder ZeichnenInstanced Scheitelpunktanzahl (einschließlich Instancing) | D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (2 ) |
DrawIndexed[Instanced]() Vertex count (einschließlich Instancing) | D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (2 ) |
GS-Aufrufausgabedaten (Komponenten * Scheitelpunkte) | D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024) |
Gesamtzahl der Samplerobjekte pro Kontext | D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096) |
Gesamtanzahl der Viewport-/Scissor-Objekte pro Pipeline | D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16) |
Gesamtanzahl der Clip-/Cull-Abstände pro Scheitelpunkt | D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8) |
Gesamtanzahl von Blendobjekten pro Kontext | D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096) |
Gesamtanzahl von Tiefen-/Schablonenobjekten pro Kontext | D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096) |
Gesamtanzahl der Rasterungszustandsobjekte pro Kontext | D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096) |
Maximale Stichprobenanzahl pro Pixel beim Multisampling | D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32) |
Anzahl der Vertexelemente der Shaderressource (vier 32-Bit-Komponenten) | D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32) |
Common-Shader Core (vier 32-Bit-Komponenten) temp-register count (r# + indexable x#[n]) | D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096) |
Common-Shader Core-Konstantpufferslots | D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1 für einen sofortigen Konstantenpuffer in Shadern eingestellt) |
Common-Shader Core-Eingaberessourcenslots | D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128) |
Common-Shader Core-Sampler-Slots | D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16) |
Common-Shader Core-Unterroutine-Schachtelungslimit | D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32) |
Common-Shader Core Flow-Control-Schachtelungslimit | D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64) |
Anzahl der Vertex-Shadereingaben (vier 32-Bit-Komponenten) | D3D11_VS_INPUT_REGISTER_COUNT (32) |
Anzahl der Vertex-Shader-Ausgaberegister (vier 32-Bit-Komponenten) | D3D11_VS_OUTPUT_REGISTER_COUNT (32) |
Anzahl der Eingaberegister des Geometrie-Shaders (vier 32-Bit-Komponenten) | D3D11_GS_INPUT_REGISTER_COUNT (32) |
Anzahl der Geometrie-Shader-Ausgaberegister (vier 32-Bit-Komponenten) | D3D11_GS_OUTPUT_REGISTER_COUNT (32) |
Anzahl der Pixel-Shader-Eingaberegister (vier 32-Bit-Komponenten) | D3D11_PS_INPUT_REGISTER_COUNT (32) |
Pixel-Shaderausgabeslots | 8 |
Pixel-Shader- Ausgabetiefe registeranzahl (eine 32-Bit-Komponente) | D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1) |
Eingaberessourcenslots für Den Eingabeassemierindex | D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1) |
Eingabeslots für Eingabe-Assembler-Vertex-Ressourcenslots | D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32) |
Anzahl der Eingaberegisterwerte des Hull-Shadersteuerelementpunkts (vier 32-Bit-Komponenten) | D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32) |
Anzahl der Eingabesteuerungspunkte für den Hull-Shader | D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) |
Anzahl der Ausgaberegisterwerte des Hull-Shader-Steuerpunkts (vier 32-Bit-Komponenten) | D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32) |
Hull-Shader anzahl der Ausgabesteuerungspunkte | D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) |
Anzahl der Hüllenshader-Patchkonstanten für Ausgaberegister (vier 32-Bit-Komponenten) | D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32) |
Anzahl der Eingaberegisterwerte des Domänenshaderpunkts (vier 32-Bit-Komponenten) | D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32) |
Domänen-Shader: Anzahl der Eingabesteuerungspunkte | D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32) |
Anzahl der Eingaberegisterkonstanten des Domänenshaders (vier 32-Bit-Komponenten) | D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32) |
Domänenshader tessellierte Vertexausgabe-Registeranzahl (vier 32-Bit-Komponenten) | D3D11_DS_OUTPUT_REGISTER_COUNT (32) |
Slots für ungeordnete Zugriffsansicht (UAV) für Compute-Shader | D3D11_PS_CS_UAV_REGISTER_COUNT (8)4 |
Größe der Ressourcenkachel in Bytes | D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) |
Eine App kann versuchen, mehr Arbeitsspeicher für eine Ressource zuzuweisen, als die maximale Ressourcengröße angibt. Das heißt, die Direct3D 11-Runtime lässt diese Speicherbelegungsversuche zu, falls die Hardware sie möglicherweise unterstützt. Die Direct3D 11-Runtime garantiert jedoch nur, dass Zuordnungen innerhalb der maximalen Ressourcengröße von allen Hardware der Featureebene 11 unterstützt werden. Wenn eine App versucht, Arbeitsspeicher für eine Ressource innerhalb der maximalen Ressourcengröße zuzuweisen, schlägt die Laufzeit den Versuch nur fehl, wenn dem Betriebssystem keine Ressourcen mehr zur Verfügung sind. Wenn eine App versucht, Arbeitsspeicher für eine Ressource zuzuweisen, die über der maximalen Ressourcengröße liegt, kann der Versuch der Laufzeit fehlschlagen, da entweder das Betriebssystem überlastet ist oder die Hardware keine Zuordnungen über der maximalen Ressourcengröße unterstützt. Die Debugebene überprüft nur D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) MB.
Die Pixelshader-Ausgabeslots werden zwischen Pixelausgaberegistern (vier 32-Bit-Komponenten) und UAVs gemeinsam genutzt.
Die Gesamtanzahl der Komponenten für alle Rumpf-Shader- bis Domänen-Shader-Kontrollpunkte ist auf 3968 beschränkt, was 128 weniger als die maximalen Kontrollpunkte ist, wenn der maximale Kontrollpunkt mal vier Komponenten registriert.
4Für Computeshaderprofile CS_4_0 und CS_4_1 ist nur ein UAV verfügbar. Weitere Informationen zu Shaderprofilen finden Sie unter Shadermodell 5.
Ressourcenlimits für Hardware auf Featureebene 9.x
Alle diese Ressourcenlimits auf 9.x-Featureebene sind in D3dcommon.h als Konstanten definiert.
Resource | Begrenzung |
---|---|
Dimension der Featureebene 9_1 texture1D U | D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION (2048) |
Dimension der Featureebene 9_3 texture1D U | D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (4096) |
Featureebene 9_1 texture2D U/V Dimension | D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048) |
Featureebene 9_3 texture2D U/V Dimension | D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096) |
Featureebene 9_1 texture3D U/V/W-Dimension | D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (256) |
TexturCube-Dimension der Featureebene 9_1 | D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION (512) |
TexturCube-Dimension der Featureebene 9_3 | D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION (4096) |
Featureebene 9_1 anisotrope Filterung Maxanisotropie Standard | D3D_FL9_1_DEFAULT_MAX_ANISOTROPY (2) |
Maximale Eingabe-Assembler-Grundtypen auf Featureebene 9_1 | D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT (65535) |
Featureebene 9_2 maximale Eingabeasserprimiertypen | D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT (1048575) |
Gleichzeitige Renderziele auf Featureebene 9_1 | D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT (1) |
Gleichzeitige Renderziele auf Featureebene 9_3 | D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT (4) |
Maximale Texturwiederholung auf Featureebene 9_1 | D3D_FL9_1_MAX_TEXTURE_REPEAT (128) |
Maximale Texturwiederholung auf Featureebene 9_2 | D3D_FL9_2_MAX_TEXTURE_REPEAT (2048) |
Maximale Texturwiederholung auf Featureebene 9_3 | D3D_FL9_3_MAX_TEXTURE_REPEAT (8192) |