共用方式為


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

另請參閱

著色器結構