動的リンク

グラフィックス開発者は、さまざまなシーン 項目で使用できる大規模な汎用シェーダーを作成することがあります。 実行時に、シェーダーは特定の状況に適したコードを条件付きで実行します。 残念ながら、これらの大規模な汎用シェーダーは汎用レジスタ (GPR) を非効率的に使用し、より小さく、よりターゲットを絞ったシェーダーよりもはるかに遅くなる可能性があります。

シェーダー モデル 5 では、動的シェーダー リンクを導入することで、このパフォーマンスの問題に対処します。 動的リンクは、インターフェイスと仮想関数を使用してシェーダー コード フラグメントを分離し、アプリケーションが描画時に使用するフラグメントを選択できるようにします。 これにより、必要なシェーダー コードのみをバインドし、大規模な汎用シェーダー全体をバインドしないことで、パフォーマンスが向上します。

このセクションの内容

項目 説明
共有するシェーダーの変数と型の格納
複数のシェーダーが共有できる変数と型を格納するためのクラス リンケージ オブジェクトについて説明します。
インターフェイスとクラス
HLSL インターフェイスとクラスを使用して動的リンクを実装する方法について説明します。
インターフェイスの使用制限
シェーダー コードでのインターフェイスの使用に関する制限について説明します。

HLSL