IT用語集 › プログラミング › パイプラインステートオブジェクト(PSO)

パイプラインステートオブジェクト(PSO)

プログラミング Svenska → 更新: 2026-10-26

シェーダー、ブレンド、深度テスト、頂点レイアウトなど、GPUの固定パイプライン状態のほぼすべてを、事前コンパイル済みの1つにまとめた不変オブジェクト。

OpenGLやD3D11のような従来のAPIでは、レンダーステートを1つずつ切り替えられた。その代わりドライバーは、最初の描画コールで組み合わせを裏で再コンパイル・検証しており、フレームの途中で予測できないヒッチが起きた。2015年のDirect3D 12とVulkanはこれを逆転させた。状態全体をパイプラインステートオブジェクトとして先に宣言し、ドライバーが一度だけコンパイルする。描画時のバインドはポインタの差し替えにすぎない。

代償は柔軟性の欠如だ。シェーダーと状態の組み合わせごとに別のPSOが必要になるため、エンジンによっては数千個に達する。新しいPSOが途中で現れてカクつくのを避けるには、ロード時に作っておくのが望ましい。メッシュパイプラインとコンピュートパイプラインには、より単純な専用のPSOがある。

← 用語集に戻る