Limites de recursos (Direct3D 11)

Este tópico contém uma lista de recursos compatíveis com o Direct3D 11 (especificamente hardware de nível de recurso 11 ou 9.x).

Limites de recursos para hardware de nível de recurso 11

Todos esses limites de recursos são definidos como constantes em D3d11.h.

Recurso Limite
Número de elementos em um buffer constante D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
Número de texels (independente do tamanho do struct) em um buffer texels D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (2 7)
Dimensão Texture1D U D3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
Dimensão Texture1DArray D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (fatias de matriz de 2048)
Dimensão de U/V Texture2D D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
Dimensão Texture2DArray D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (fatias de matriz de 2048)
Dimensão U/V/W texture3D D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
Dimensão TextureCube D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
Tamanho do recurso (em MB) para qualquer um dos recursos anteriores min(max(128,0,25f * (quantidade de VRAM dedicada)), 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)
Filtragem anisotrópica de maxanisotropia D3D11_REQ_MAXANISOTROPY (16)
Dimensão do recurso endereçável filtrando hardware D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384) por dimensão
Tamanho do recurso (em MB) endereçável por IA (dados de entrada ou vértice) ou VS/GS/PS (exemplo de ponto) max(128,0,25f * (quantidade de VRAM dedicada)) MB
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0,25f)
Número total de exibições de recursos por contexto (cada matriz conta como 1) (todos os tipos de exibição têm limite compartilhado) D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (2 )
Tamanho da estrutura do buffer (vários elementos) D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048 bytes)
Tamanho da saída do fluxo O mesmo que o número de texels em um buffer (consulte anterior)
Contagem de vértices Draw ou DrawInstanced (incluindo instanciação) D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (2 )
Contagem de vértice DrawIndexed[Instanced]() (incluindo instanciação) D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (2 )
Dados de saída de invocação GS (componentes * vértices) D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES (1024)
Número total de objetos de amostra por contexto D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
Número total de objetos viewport/tesoura por pipeline D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
Número total de distâncias de recorte/recorte por vértice D3D11_CLIP_OR_CULL_DISTANCE_COUNT (8)
Número total de objetos de mesclagem por contexto D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
Número total de objetos de profundidade/estêncil por contexto D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
Número total de objetos de estado do rasterizador por contexto D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
Contagem máxima de amostras por pixel durante várias amostras D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT (32)
Contagem de elementos de vértice de recurso de sombreador (quatro componentes de 32 bits) D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
Núcleo de sombreador comum (quatro componentes de 32 bits) contagem de registro temporário (r# + x#[n]indexável) D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
Slots de buffer constante de núcleo de sombreador comum D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15) (+1 reservado para um buffer constante imediato em sombreadores)
Slots de entrada-recurso de núcleo de sombreador comum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
Slots de amostragem de núcleo de sombreador comum D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
Limite de aninhamento de sub-rotina do núcleo do sombreador comum D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
Limite de aninhamento de controle de fluxo do núcleo do sombreador comum D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
Contagem de registro de entrada do sombreador de vértice (quatro componentes de 32 bits) D3D11_VS_INPUT_REGISTER_COUNT (32)
Contagem de registro de saída do sombreador de vértice (quatro componentes de 32 bits) D3D11_VS_OUTPUT_REGISTER_COUNT (32)
Contagem de registro de entrada do sombreador de geometria (quatro componentes de 32 bits) D3D11_GS_INPUT_REGISTER_COUNT (32)
Contagem de registro de saída do sombreador de geometria (quatro componentes de 32 bits) D3D11_GS_OUTPUT_REGISTER_COUNT (32)
Contagem de registro de entrada do sombreador de pixel (quatro componentes de 32 bits) D3D11_PS_INPUT_REGISTER_COUNT (32)
Slots de saída do sombreador de pixel 8
Contagem de registros de profundidade de saída do sombreador de pixel (um componente de 32 bits) D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
Slots de recurso de entrada de índice do assembler de entrada D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1)
Slots de recurso de entrada de vértice do assembler de entrada D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
Contagem de registro de entrada do ponto de controle do sombreador hull (quatro componentes de 32 bits) D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT (32)
Número do sombreador de casco de pontos de controle de entrada D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Contagem de registro de saída do ponto de controle do sombreador de casco (quatro componentes de 32 bits) D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT (32)
Número do sombreador de casco de pontos de controle de saída D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Contagem de registro de saída constante do sombreador de casco (quatro componentes de 32 bits) D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Contagem de registro de entrada do ponto de controle do sombreador de domínio (quatro componentes de 32 bits) D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT (32)
Número do sombreador de domínio de pontos de controle de entrada D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT (32)
Contagem de registro de entrada constante do sombreador de domínio (quatro componentes de 32 bits) D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT (32)
Contagem de registro de saída de vértice com mosaico de sombreador de domínio (quatro componentes de 32 bits) D3D11_DS_OUTPUT_REGISTER_COUNT (32)
Slots UAV (exibição de acesso não ordenado) do sombreador de computação D3D11_PS_CS_UAV_REGISTER_COUNT (8)4
Tamanho do bloco de recursos em bytes D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 )

Um aplicativo pode tentar alocar mais memória para um recurso do que o tamanho máximo do recurso especifica. Ou seja, o runtime do Direct3D 11 permite essas tentativas de alocação de memória caso o hardware possa dar suporte a elas. No entanto, o runtime do Direct3D 11 garante apenas que as alocações dentro do tamanho máximo do recurso sejam compatíveis com todo o hardware de nível de recurso 11. Se um aplicativo tentar alocar memória para um recurso dentro do tamanho máximo do recurso, o runtime falhará na tentativa somente se o sistema operacional ficar sem recursos. Se um aplicativo tentar alocar memória para um recurso acima do tamanho máximo do recurso, o runtime poderá falhar na tentativa porque o sistema operacional está sobrecarregado ou o hardware não dá suporte a alocações acima do tamanho máximo do recurso. A camada de depuração verifica apenas D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128) MB.

Os slots de saída do sombreador de pixel são compartilhados entre registros de saída de pixel (quatro componentes de 32 bits) e UAVs.

O número total de componentes para todos os sombreadores de casco para pontos de controle de sombreador de domínio é limitado a 3968, que é 128 a menos que o máximo de pontos de controle vezes que o ponto de controle máximo registra quatro componentes.

4Para perfis de sombreador de computação CS_4_0 e CS_4_1 há apenas 1 UAV disponível. Para obter mais informações sobre perfis de sombreador, consulte Sombreador Modelo 5.

Limites de recursos para hardware de nível de recurso 9.x

Todos esses limites de recursos de nível de recurso 9.x são definidos como constantes em D3dcommon.h.

Recurso Limite
Dimensão 9_1 texture1D U de nível de recurso D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION (2048)
Dimensão 9_3 texture1D U de nível de recurso D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION (4096)
Dimensão U/V de nível de recurso 9_12D D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION (2048)
Dimensão U/V do nível do recurso 9_3 texture2D D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION (4096)
Dimensão U/V/W de nível de recurso 9_1 texture3D D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (256)
Textura de nível de recurso 9_1 Dimensão docubo D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION (512)
Nível de recurso 9_3 textureCube dimensão D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION (4096)
Padrão de filtragem anisotrópica de nível de recurso 9_1 maxanisotropy D3D_FL9_1_DEFAULT_MAX_ANISOTROPY (2)
Primitivos máximos do assembler de entrada de nível de recurso 9_1 D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT (65535)
Nível de recurso 9_2 primitivos máximos do assembler de entrada D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT (1048575)
Destinos de renderização simultânea de nível de recurso 9_1 D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT (1)
Destinos de renderização simultânea de nível de recurso 9_3 D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT (4)
Repetição de textura máxima de nível de recurso 9_1 D3D_FL9_1_MAX_TEXTURE_REPEAT (128)
Repetição de textura máxima de nível de recurso 9_2 D3D_FL9_2_MAX_TEXTURE_REPEAT (2048)
Repetição de textura máxima de nível de recurso 9_3 D3D_FL9_3_MAX_TEXTURE_REPEAT (8192)

Recursos