Microsoft DirectX 8.0 (C++) |
D3DCAPS8 のメンバを照会して、ピクセル シェーダに関する処理のサポート レベルを確認することができる。次の表は、Microsoft® DirectX® 8.0でのプログラム可能なピクセル処理に関連するデバイス機能を示している。
デバイス機能 | 説明 |
---|---|
MaxPixelShaderValue | ピクセル シェーダの算術コンポーネントの最大値。 |
MaxSimultaneousTextures | サポートされるテクスチャ宣言命令の数。 |
MaxTextureBlendStages | サポートされる命令の数。 |
PixelShaderVersion | ピクセル シェーダのサポート レベル。 |
MaxSimultaneousTextures および MaxTextureBlendStages 能力は、固定機能ピクセル ブレンディング (マルチテクスチャを使用) にのみ適用される。
PixelShaderVersion 機能は、ピクセル シェーダのサポート レベルを示す。IDirect3DDevice8::CreatePixelShader メソッドを呼び出したとき、この値以下のバージョン番号を持つピクセル シェーダのみ正常に作成される。主なバージョン番号は、PixelShaderVersion のセカンド バイトにエンコードされる。下位バイトには、マイナー バージョンの番号が含まれる。ピクセル シェーダのバージョンは、各シェーダの最初のトークンによって示される。
ピクセル シェーダ アプリケーションは、MaxSimultaneousTextures および MaxTextureBlendStages デバイス能力をチェックする必要がない。
各実装は、完全にサポートできる最大のピクセル シェーダ バージョンを示す PixelShaderVersion メンバを設定する。このため、PixelShaderVersion によって提示されたバージョン以下のシェーダの作成が失敗することはない。
次の表は、サポートされているピクセル シェーダのバージョン、および関連する機能レベルとレジスタ カウントを示している。
バージョン | 機能 | tn | rn | cn | vn |
---|---|---|---|---|---|
1.0 | DirectX 8.0 | 4 | 2 | 8 | 2 |
1.1 | DirectX 8.0 | 4 | 2 | 8 | 2 |
バージョン 1.0 は、ピクセル シェーダのリファレンスの「命令」に記載されるすべての処理をサポートしている。最大 4 つのテクスチャ アドレス処理、および合計 8 つの命令がサポートされる。このバージョンの場合、テクスチャ レジスタの tn は読み取り専用であり、指定された命令内ではこのテクスチャ レジスタのみ使用できる。
バージョン 1.1 では、最大 4 つのアドレス処理、および 8 つのブレンディング処理をサポートしている。このバージョンの場合、テクスチャ レジスタは読み/書き可能であり、その 2 つを単一の命令内で入力として使用できる。