D3D12_SIGNATURE_PARAMETER_DESC 結構 (d3d12shader.h)
描述著色器簽章。
語法
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;
成員
SemanticName
識別數據使用方式的個別參數位符串。 如需詳細資訊,請參閱 語意。
SemanticIndex
修改語意的語意索引。 用來區分使用相同語意的不同參數。
Register
將包含此變數數據的緩存器。
SystemValueType
D3D_NAME型別值,可識別可決定特定管線階段功能的預先定義字串。
ComponentType
D3D_REGISTER_COMPONENT_TYPE型別值,可識別儲存在緩存器中的個別元件數據類型。 每個快取器最多可以儲存四個元件的數據。
Mask
表示使用緩存器元件之遮罩。
ReadWriteMask
遮罩,指出如果簽章是輸出簽章) (,或簽章是輸入簽章) ,則表示指定的元件永遠不會寫入 (。
Stream
指出幾何著色器用於簽章參數的數據流。
MinPrecision
表示最小所需插補精確度 的D3D_MIN_PRECISION型別值。 如需詳細資訊,請參閱 使用 HLSL 最小精確度。
備註
著色器可以接受 n 個輸入,而且可以產生 m 輸出。 輸入 (或輸出的順序) 參數、其相關聯的類型,以及任何附加的語意都會構成著色器簽章。 每個著色器都有輸入和輸出簽章。
編譯著色器或效果時,某些 API 會呼叫驗證著色器簽章。也就是說,它們會比較一個著色器的輸出簽章 (,例如頂點著色器的輸出簽章,例如頂點著色器) ,以及另一個著色器的輸入簽章, (例如圖元著色器) 。 這可確保著色器會輸出與取用該數據的下游著色器相容的數據。 相容表示著色器簽章是先前著色器階段的完全相符子集。 完全相符表示參數類型和語意必須完全相符。 子集表示下游階段不需要的參數,不需要在其著色器簽章中包含該參數。
藉由呼叫 ID3D12ShaderReflection::GetInputParameterDesc等 API,從著色器或效果取得著色器簽章。
規格需求
需求 | 值 |
---|---|
標頭 | d3d12shader.h |