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 操作の場合は、これを 0 に設定します。 複数の 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_DESCForcedSampleCount メンバーが 0 でない場合:
    • 深度/ステンシルは無効にする必要があります。
    • ピクセル シェーダーは深度を出力できません。
    • ピクセル シェーダーは、サンプルの頻度では実行できません。
    • レンダー ターゲットのサンプル数は 1 である必要があります。
  • ブレンド状態がレンダー ターゲット形式と互換性があるかどうか。
  • ピクセル シェーダー出力の種類がレンダー ターゲット形式と互換性があるかどうか。
  • レンダー ターゲット/深度ステンシル形式でサンプル数と品質がサポートされているかどうか。

要件

   
Header d3d12.h

関連項目

保守的なラスター化

コア構造

ラスタライザー順序指定ビュー