ソフトウェア シェーダーは、基になるハードウェアをサポートせずにシェーダーを開発できるように実装されています。 完全な機能セットをサポートします。 これらはソフトウェアで実装されているため、最高のパフォーマンスを生み出しません。
| バージョン | 機能セット | 必要条件 |
|---|---|---|
| vs_2_sw | vs_2_xのすべての機能 | ソフトウェア頂点処理と参照デバイスでのみサポートされます。 |
| vs_3_sw | vs_3_0のすべての機能 | ソフトウェア頂点処理と参照デバイスでのみサポートされます。 |
| ps_2_sw | ps_2_xのすべての機能 | 参照デバイスでのみサポートされます。 |
| ps_3_sw | ps_3_0のすべての機能 | 参照デバイスでのみサポートされます。 |
一部の検証は、ソフトウェア シェーダーで緩和されます。 これは、デバッグとプロトタイプ作成の目的で役立ちます。 次の検証は緩和されています (他のすべての検証は同じままです)。
| 検証の種類 | 慰安 |
|---|---|
| 命令数: | これは、vs_2_sw、vs_3_sw、ps_2_sw、ps_3_swのためにリラックスしています。 無制限の手順を使用できます。 |
| Float 定数の数: | これは、vs_2_sw、vs_3_sw、ps_2_sw、ps_3_swのためにリラックスしています。 最大 8192 個の定数を使用できます。 |
| 整数定数数: | これは、vs_2_sw、vs_3_sw、ps_2_sw、ps_3_swのためにリラックスしています。 最大 2048 個の定数を使用できます。 |
| ブール定数の数: | これは、vs_2_sw、vs_3_sw、ps_2_sw、ps_3_swのためにリラックスしています。 最大 2048 個の定数を使用できます。 |
| 依存読み取り深度: | これはps_2_swのためにリラックスしています。 vs_3_0やps_3_0と同様に、無制限の依存読み取りが許可されます。 |
| フロー制御命令とラベルの数: | これはvs_2_swのためにリラックスしています。 無制限のフロー制御命令と最大2048個のラベルが許可されます。 |
| ループ数/開始/ステップ: | これらは、vs_2_sw、vs_3_sw、ps_2_sw、ps_3_swのためにリラックスしています。 rep 命令とループ命令の反復開始と反復ステップのサイズは、32 ビット符号付き整数です。 イテレーション カウントは最大 MAX_INT/64 です。 |
| 読み取りポートの制限: | vs_2_sw、vs_3_sw、ps_2_sw、およびps_3_swには、読み取りポートの制限はありません。 |
| 補間器の数: | vs_3_swには 16 個の レジスタ (vs_3_0 (o#) と、ps_3_sw用の 10 個の ps_3_0 レジスタ (v#) があります。 |
関連トピック