共用方式為


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方法會使用此結構。

執行時間會驗證:

  • 著色器階段之間的連結是否正確。
  • 如果指定 HSDS 成員,拓撲類型的 PrimitiveTopologyType 成員必須設定為 D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH
  • 是否不允許使用中央多重取樣反鋸齒 (MSAA) 模式執行取樣頻率。
  • 中央 MSAA 模式是否不允許反鋸齒線。
  • 如果RasterizerState指定的D3D12_RASTERIZER_DESC ForcedSampleCount成員不是零:
    • 深度/樣板必須停用。
    • 圖元著色器無法輸出深度。
    • 圖元著色器無法以取樣頻率執行。
    • 轉譯目標樣本計數必須是 1。
  • 混合狀態是否與轉譯目標格式相容。
  • 圖元著色器輸出類型是否與轉譯目標格式相容。
  • 轉譯目標/深度樣板格式是否支援樣本計數和品質。

需求

   
標頭 d3d12.h

另請參閱

保守點陣化

核心結構

轉譯器排序檢視