ps_3_0
プログラマブル ピクセル シェーダーは、ピクセル データを処理する一連の命令から成ります。レジスタは、ALU との間でデータをやり取りします。追加の制御を適用し、命令、結果、または書き出されるデータを変更することができます。
- 「ps_3_0 命令」には、利用できる命令の一覧が記載されています。
- 「レジスタ - ps_3_0」では、ピクセル シェーダー ALU が使用する各種のレジスタの一覧を示します。
- 「修飾子」は、命令の動作方法を変更するために使用します。
- 「デスティネーション レジスタ書き込みマスク」では、デスティネーション レジスタのどの要素に書き込むかを指定します。
- 「ソース レジスタ修飾子 (ピクセル シェーダー)」は、命令の実行前にソース レジスタのデータを変更します。
- 「ソース レジスタのスィズル」を使用すると、読み取り、コピー、または書き込みを行うレジスタ要素をより詳細に制御することができます。
新機能
面レジスタが追加されました。位置座標レジスタが追加されました。カラー レジスタ (v#) は、完全な浮動小数点数となり、テクスチャー座標レジスタ (t#) と統合されました。入力宣言では使用方法の名前を指定でき、指定した 1 つのレジスタに対して成分の使用方法を複数指定することができます。
動的フロー制御
デバイスは動的フロー制御 (if bool - ps、break - ps、および break_comp - ps) をサポートします。ネストの深さは 0 ~ 24 の範囲です。
テンポラリ レジスタの数
サポートされているテンポラリ レジスタの数は 32 個です。
静的フロー制御のネストの深さ
call - ps/callnz /call_pred は、最大で 4 レベルの深さまでネストできます。またこれとは別に、loop - ps/rep - ps 命令も最大で 4 レベルの深さまでネストできます。
任意の入れ換え
任意の入れ換えがサポートされます。「ソース レジスタのスィズル」を参照してください。
グラデーション命令
グラデーション命令がサポートされます。「dsx - ps」、「dsy - ps」、および「texldd - ps」を参照してください。
プレディケーション
命令のプレディケーションがサポートされます。「プレディケーション レジスタ」を参照してください。
従属読み込みの制限
従属読み込みの制限はありません。
テクスチャー命令の制限
テクスチャー命令の制限はありません。
命令カウント
各ピクセル シェーダーに対して、512 から MaxPixelShader30InstructionSlots に指定されているスロット数 (上限は 32,768) まで許可されています。ループがサポートされるため、実行される命令の数はこれよりも格段に多くなる可能性があります。MaxPShaderInstructionsExecuted は、少なくとも 2^16 である必要があります。
サンプラーのカウント
16 個のテクスチャー サンプラーを使用できます。
デバイスの機能
ps_3_0 がサポートされている場合、ハードウェアで次の機能が (最低限) サポートされます。
機能 | 値 |
---|---|
MaxTextureWidth、MaxTextureHeight | 各4K |
MaxTextureRepeat | 8K |
MaxAnisotropy | 16 |
PixelShaderVersion | 3_0 |
MaxPixelShader30InstructionSlots | 512 |
設定されるプリミティブ機能 | D3DPMISCCAPS_BLENDOP、D3DPMISCCAPS_CLIPPLANESCALEDPOINTS、D3DPMISCCAPS_CLIPTLVERTS、D3DPMISCCAPS_CULLCCW、D3DPMISCCAPS_CULLCW、D3DPMISCCAPS_CULLNONE、D3DPMISCCAPS_FOGINFVF、D3DPMISCCAPS_MASKZ |
設定されるラスター機能 | D3DCAPS9 の D3DPRASTERCAPS_MIPMAPLODBIAS、D3DPRASTERCAPS_ANISOTROPY、D3DPRASTERCAPS_COLORPERSPECTIVE、D3DPRASTERCAPS_SCISSORTEST |
深度バイアスの完全サポート | D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS、D3DPRASTERCAPS_DEPTHBIAS |
深度テストおよびアルファ テストの完全な比較 | D3DCAPS9 のすべての D3DPCMPCAPS |
転送元ブレンディング モード | 転送元のすべてのブレンディング モードがサポートされます (D3DPBLENDCAPS_SRCALPHASAT、D3DPBLENDCAPS_BOTHSRCALPHA、および D3DPBLENDCAPS_BOTHINVSRCALPHA を除く)。 |
サポートされるテクスチャー機能 | D3DPTEXTURECAPS_CUBEMAP、 D3DPTEXTURECAPS_MIPCUBEMAP、D3DPTEXTURECAPS_MIPMAP、D3DPTEXTURECAPS_MIPVOLUMEMAP、D3DPTEXTURECAPS_PERSPECTIVE、D3DPTEXTURECAPS_PROJECTED、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE、D3DPTEXTURECAPS_VOLUMEMAP |
テクスチャー フィルター機能、ボリューム テクスチャー フィルター機能、およびキューブ テクスチャー フィルター機能のサポート | D3DPTFILTERCAPS_MINFPOINT、D3DPTFILTERCAPS_MINFLINEAR、D3DPTFILTERCAPS_MINFANISOTROPIC (これは、VolumeTextureFilterCaps および CubeTextureFilterCaps には不要です)、D3DPTFILTERCAPS_MIPFPOINT、D3DPTFILTERCAPS_MIPFLINEAR、D3DPTFILTERCAPS_MAGFPOINT、D3DPTFILTERCAPS_MAGFLINEAR |
頂点およびピクセル ステージでサポートされるテクスチャー アドレス モード | D3DPTADDRESSCAPS_WRAP、D3DPTADDRESSCAPS_MIRROR、D3DPTADDRESSCAPS_CLAMP、D3DPTADDRESSCAPS_BORDER、D3DPTADDRESSCAPS_INDEPENDENTUV、D3DPTADDRESSCAPS_MIRRORONCE |
すべてのピクセル シェーダー機能 | DynamicFlowControlDepth = 24、NumTemps = 32、StaticFlowControlDepth = 4、NumInstructionSlots = 512。プレディケーション、任意のスィズル、およびグラデーション命令のサポートされます。従属読み込みの制限、テクスチャーと算術命令の混合の制限はありません。 |
すべてのステンシル処理のサポート。これには、2面ステンシルも含まれます。 | 「D3DSTENCILOP」を参照してください。 |
デバイスでの頂点ごとのポイント サイズのサポート | D3DCAPS9 の D3DFVFCAPS_PSIZE |
サイズが 2 の累乗ではないテクスチャーのサポート | 完全サポートまたは条件付きでの 2 の累乗以外のサポート。デバイスには D3DPTEXTURECAPS_SQUAREONLY のような正方形のテキストに限定する制限を課さないでください。 |
デバイスで複数のレンダー ターゲットがサポートされる場合にサポートされる機能 | D3DPMISCCAPS_INDEPENDENTWRITEMASKS、D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING |
vs_3_0 がサポートされる場合 | D3DCAPS9 の MaxUserClipPlanes は 6 です。 |