D3D12_SHADER_DESC 結構 (d3d12shader.h)
描述著色器。
語法
typedef struct _D3D12_SHADER_DESC {
UINT Version;
LPCSTR Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InputParameters;
UINT OutputParameters;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT CutInstructionCount;
UINT EmitInstructionCount;
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
UINT GSMaxOutputVertexCount;
D3D_PRIMITIVE InputPrimitive;
UINT PatchConstantParameters;
UINT cGSInstanceCount;
UINT cControlPoints;
D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
D3D_TESSELLATOR_PARTITIONING HSPartitioning;
D3D_TESSELLATOR_DOMAIN TessellatorDomain;
UINT cBarrierInstructions;
UINT cInterlockedInstructions;
UINT cTextureStoreInstructions;
} D3D12_SHADER_DESC;
成員
Version
著色器版本,作為對應至著色器模型的編碼 UINT,例如 「ps_5_0」。。 版本 描述程式類型、主要版本號碼和次要版本號碼。 程式類型是 D3D12_SHADER_VERSION_TYPE 列舉常數。 版本 會以下列方式譯碼:
- 程式類型 = (版本 & 0xFFFF0000) >> 16
- 主要版本 = (版本 & 0x000000F0) >> 4
- 次要版本 = (版本 & 0x0000000F)
Creator
著色器的原始程序名稱。
Flags
著色器編譯/剖析旗標。
ConstantBuffers
著色器常數緩衝區的數目。
BoundResources
系結至著色器的資源 (紋理和緩衝區數目) 。
InputParameters
輸入簽章中的參數數目。
OutputParameters
輸出簽章中的參數數目。
InstructionCount
編譯著色器中的中繼語言指令數目。
TempRegisterCount
已編譯著色器中的暫存緩存器數目。
TempArrayCount
使用的暫存陣列數目。
DefCount
常數定義的數目。
DclCount
輸入 + 輸出) (宣告數目。
TextureNormalInstructions
非分類紋理指令的數目。
TextureLoadInstructions
紋理載入指令的數目
TextureCompInstructions
紋理比較指示的數目
TextureBiasInstructions
紋理偏差指令的數目
TextureGradientInstructions
紋理漸層指令的數目。
FloatInstructionCount
使用的浮點算術指令數目。
IntInstructionCount
使用的帶正負號整數算術指令數目。
UintInstructionCount
使用的不帶正負號整數算術指令數目。
StaticFlowControlCount
使用的靜態流程控制指令數目。
DynamicFlowControlCount
使用的動態流程控制指令數目。
MacroInstructionCount
使用的宏指令數目。
ArrayInstructionCount
使用的陣列指令數目。
CutInstructionCount
使用的剪下指令數目。
EmitInstructionCount
使用的發出指令數目。
GSOutputTopology
表示幾何著色器輸出拓撲 的D3D_PRIMITIVE_TOPOLOGY型別值。
GSMaxOutputVertexCount
幾何著色器最大輸出頂點計數。
InputPrimitive
D3D_PRIMITIVE型別值,表示幾何著色器或殼層著色器的輸入基本類型。
PatchConstantParameters
修補程式常數簽章中的參數數目。
cGSInstanceCount
幾何著色器實例的數目。
cControlPoints
殼層著色器和網域著色器中的控制點數目。
HSOutputPrimitive
表示鑲嵌式輸出基本類型的 D3D_TESSELLATOR_OUTPUT_PRIMITIVE型別值。
HSPartitioning
表示鑲嵌式分割模式 的D3D_TESSELLATOR_PARTITIONING型別值。
TessellatorDomain
表示鑲嵌式網域 的D3D_TESSELLATOR_DOMAIN型別值。
cBarrierInstructions
計算著色器中的屏障指令數目。
cInterlockedInstructions
計算著色器中的連結指令數目。
cTextureStoreInstructions
計算著色器中的紋理寫入數目。
備註
著色器是以 HLSL 撰寫,並由 HLSL 編譯程式編譯成中繼語言。 著色器描述會傳回已編譯著色器的相關信息。 若要取得著色器描述,請呼叫 ID3D12ShaderReflection::GetDesc。
規格需求
需求 | 值 |
---|---|
標頭 | d3d12shader.h |