Condividi tramite


struttura D3D12_SIGNATURE_PARAMETER_DESC (d3d12shader.h)

Descrive una firma dello shader.

Sintassi

typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
  LPCSTR                      SemanticName;
  UINT                        SemanticIndex;
  UINT                        Register;
  D3D_NAME                    SystemValueType;
  D3D_REGISTER_COMPONENT_TYPE ComponentType;
  BYTE                        Mask;
  BYTE                        ReadWriteMask;
  UINT                        Stream;
  D3D_MIN_PRECISION           MinPrecision;
} D3D12_SIGNATURE_PARAMETER_DESC;

Members

SemanticName

Stringa per parametro che identifica la modalità di utilizzo dei dati. Per altre info, vedi Semantica.

SemanticIndex

Indice semantico che modifica la semantica. Usato per distinguere parametri diversi che usano la stessa semantica.

Register

Registro che conterrà i dati di questa variabile.

SystemValueType

Valore tipizzato D3D_NAME che identifica una stringa predefinita che determina la funzionalità di determinate fasi della pipeline.

ComponentType

Valore tipizzato D3D_REGISTER_COMPONENT_TYPE che identifica il tipo di dati per componente archiviato in un registro. Ogni registro può archiviare fino a quattro componenti di dati.

Mask

Maschera che indica quali componenti di un registro vengono utilizzati.

ReadWriteMask

Maschera che indica se un determinato componente non viene mai scritto (se la firma è una firma di output) o sempre letta (se la firma è una firma di input).

Stream

Indica quale flusso usa il geometry shader per il parametro signature.

MinPrecision

Valore tipizzato D3D_MIN_PRECISION che indica la precisione di interpolazione minima desiderata. Per altre info, vedi Uso della precisione minima HLSL.

Commenti

Uno shader può accettare n input e produrre m output. L'ordine dei parametri di input (o output), i relativi tipi associati e qualsiasi semantica associata costituiscono la firma dello shader. Ogni shader ha un input e una firma di output.

Quando si compila uno shader o un effetto, alcune chiamate API convalidano le firme dello shader, ovvero confrontano la firma di output di uno shader (ad esempio un vertex shader) con la firma di input di un altro shader (ad esempio un pixel shader). Ciò garantisce che uno shader restituisca dati compatibili con uno shader downstream che utilizza tali dati. Compatibile significa che una firma dello shader è un subset esatto della fase dello shader precedente. Corrispondenza esatta indica che i tipi di parametri e la semantica devono corrispondere esattamente. Il subset indica che un parametro non richiesto da una fase downstream non deve includere tale parametro nella firma dello shader.

Ottenere una firma shader da uno shader o da un effetto chiamando API come ID3D12ShaderReflection::GetInputParameterDesc.

Requisiti

Requisito Valore
Intestazione d3d12shader.h

Vedi anche

Strutture shader