D3D12_GRAPHICS_PIPELINE_STATE_DESC 結構 (d3d12.h)
描述圖形管線狀態物件。
語法
typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
ID3D12RootSignature *pRootSignature;
D3D12_SHADER_BYTECODE VS;
D3D12_SHADER_BYTECODE PS;
D3D12_SHADER_BYTECODE DS;
D3D12_SHADER_BYTECODE HS;
D3D12_SHADER_BYTECODE GS;
D3D12_STREAM_OUTPUT_DESC StreamOutput;
D3D12_BLEND_DESC BlendState;
UINT SampleMask;
D3D12_RASTERIZER_DESC RasterizerState;
D3D12_DEPTH_STENCIL_DESC DepthStencilState;
D3D12_INPUT_LAYOUT_DESC InputLayout;
D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
UINT NumRenderTargets;
DXGI_FORMAT RTVFormats[8];
DXGI_FORMAT DSVFormat;
DXGI_SAMPLE_DESC SampleDesc;
UINT NodeMask;
D3D12_CACHED_PIPELINE_STATE CachedPSO;
D3D12_PIPELINE_STATE_FLAGS Flags;
} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
成員
pRootSignature
ID3D12RootSignature物件的指標。
VS
描述頂點著色器的 D3D12_SHADER_BYTECODE 結構。
PS
描述圖元著色器的 D3D12_SHADER_BYTECODE 結構。
DS
描述定義域著色器的 D3D12_SHADER_BYTECODE 結構。
HS
描述殼層著色器的 D3D12_SHADER_BYTECODE 結構。
GS
描述幾何著色器的 D3D12_SHADER_BYTECODE 結構。
StreamOutput
描述串流輸出緩衝區 的D3D12_STREAM_OUTPUT_DESC 結構。
BlendState
描述混合狀態 的D3D12_BLEND_DESC 結構。
SampleMask
混合狀態的範例遮罩。
RasterizerState
描述轉譯器狀態 的D3D12_RASTERIZER_DESC 結構。
DepthStencilState
描述深度樣板狀態 的D3D12_DEPTH_STENCIL_DESC 結構。
InputLayout
描述輸入組合器階段之輸入緩衝區資料的 D3D12_INPUT_LAYOUT_DESC 結構。
IBStripCutValue
指定 D3D12_INDEX_BUFFER_STRIP_CUT_VALUE 結構中索引緩衝區的屬性。
PrimitiveTopologyType
基本類型的 D3D12_PRIMITIVE_TOPOLOGY_TYPE型別值,以及基本資料的順序。
NumRenderTargets
RTVFormats成員中的轉譯目標格式數目。
RTVFormats[8]
轉譯目標格式 的DXGI_FORMAT型別值陣列。
DSVFormat
深度樣板格式 的DXGI_FORMAT型別值。
SampleDesc
指定多重取樣參數 的DXGI_SAMPLE_DESC 結構。
NodeMask
針對單一 GPU 作業,請將此設定為零。 如果有多個 GPU 節點,請設定位來識別裝置實體介面卡 () 要套用圖形管線狀態的節點。 遮罩中的每個位都會對應至單一節點。 請參閱 多配接器系統。
CachedPSO
快取的管線狀態物件,作為 D3D12_CACHED_PIPELINE_STATE 結構。 pCachedBlob 和 CachedBlobSizeInBytes 可以分別設定為 Null 和 0。
Flags
D3D12_PIPELINE_STATE_FLAGS列舉常數,例如 「工具偵錯」。
備註
CreateGraphicsPipelineState方法會使用此結構。
執行時間會驗證:
- 著色器階段之間的連結是否正確。
- 如果指定 HS 和 DS 成員,拓撲類型的 PrimitiveTopologyType 成員必須設定為 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH。
- 是否不允許使用中央多重取樣反鋸齒 (MSAA) 模式執行取樣頻率。
- 中央 MSAA 模式是否不允許反鋸齒線。
-
如果RasterizerState指定的D3D12_RASTERIZER_DESC ForcedSampleCount成員不是零:
- 深度/樣板必須停用。
- 圖元著色器無法輸出深度。
- 圖元著色器無法以取樣頻率執行。
- 轉譯目標樣本計數必須是 1。
- 混合狀態是否與轉譯目標格式相容。
- 圖元著色器輸出類型是否與轉譯目標格式相容。
- 轉譯目標/深度樣板格式是否支援樣本計數和品質。
需求
標頭 | d3d12.h |