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