enumeração D3D12_ROOT_SIGNATURE_FLAGS (d3d12.h)

Especifica opções para layout de assinatura raiz.

Syntax

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
  D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
  D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
  D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
} ;

Constantes

 
D3D12_ROOT_SIGNATURE_FLAG_NONE
Valor: 0
Indica o comportamento padrão.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
Valor: 0x1
O aplicativo está optando por usar o Assembler de Entrada (exigindo um layout de entrada que define um conjunto de associações de buffer de vértice). Omitir esse sinalizador pode fazer com que um espaço de argumento raiz seja salvo em algum hardware. Omita esse sinalizador se o Assembler de Entrada não for necessário, embora a otimização seja secundária.
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
Valor: 0x2
Nega o acesso do sombreador de vértice à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
Valor: 0x4
Nega o acesso do sombreador de casco à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
Valor: 0x8
Nega o acesso do sombreador de domínio à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
Valor: 0x10
Nega o acesso do sombreador de geometria à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
Valor: 0x20
Nega o acesso do sombreador de pixel à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
Valor: 0x40
O aplicativo está optando por usar o Stream Output. Omitir esse sinalizador pode fazer com que um espaço de argumento raiz seja salvo em algum hardware. Omita esse sinalizador se a Saída de Fluxo não for necessária, embora a otimização seja secundária.
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
Valor: 0x80
A assinatura raiz deve ser usada com sombreadores de raytracing para definir associações de recursos originadas de registros de sombreador em tabelas de sombreador. Esse sinalizador não pode ser combinado com nenhum outro sinalizador de assinatura raiz, todos relacionados ao pipeline gráfico. A ausência do sinalizador significa que a assinatura raiz pode ser usada com elementos gráficos ou computação, em que a versão de computação também é compartilhada com a assinatura raiz global do raytracing.
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS
Valor: 0x100
Nega o acesso do sombreador de amplificação à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS
Valor: 0x200
Nega o acesso do sombreador de malha à assinatura raiz.
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED
Valor: 0x400
Os sombreadores têm permissão para indexar o heap de descritor CBV/SRV/UAV diretamente, usando a variável interna ResourceDescriptorHeap .
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED
Valor: 0x800
Os sombreadores têm permissão para indexar o heap do descritor de amostra diretamente, usando a variável interna SamplerDescriptorHeap .

Comentários

Essa enumeração é usada na estrutura D3D12_ROOT_SIGNATURE_DESC .

O valor em negar acesso a estágios de sombreador é uma otimização secundária em algum hardware. Se, por exemplo, o sinalizador D3D12_SHADER_VISIBILITY_ALL tiver sido definido para transmitir a assinatura raiz para todos os estágios do sombreador, negar o acesso poderá anular isso e salvar o hardware de algum trabalho. Como alternativa, se o sombreador for tão simples que nenhum recurso de assinatura raiz é necessário, negar o acesso também pode ser usado aqui.

Requisitos

   
Cabeçalho d3d12.h

Confira também

Enumerações principais

Como criar uma assinatura raiz

D3D12_ROOT_SIGNATURE_DESC