ps_3_0

プログラム可能なピクセル シェーダーは、ピクセル データに対して動作する一連の命令で構成されます。 ALU との間でデータの転送を登録します。 追加のコントロールを適用して、命令、結果、または書き込まれるデータを変更できます。

新機能

顔レジスタを追加します。 位置レジスタを追加します。 カラー レジスタ (v#) が完全に浮動小数点になり、テクスチャ座標レジスタ (t#) が統合されました。 入力宣言は使用名を受け取り、特定のレジスタのコンポーネントに対して複数の使用が許可されます。

動的フロー制御

デバイスは動的フロー制御をサポートします (bool - psbreak - psおよび break_comp - ps の場合)。 入れ子の深さは 0 から 24 の範囲です。

一時レジスタの数

サポートされている一時レジスタの数は 32 です。

静的フロー制御の入れ子の深さ

call - ps/callnz /call_predは、最大深度 4 に入れ子にすることができます。 個別に、 ループ - ps/rep - ps 命令を最大深度 4 に入れ子にすることができます。

任意のスウィズル

任意のスウィズルがサポートされています。 ソース レジスタのスウィズリングに関するページを参照してください。

グラデーション命令

グラデーション命令がサポートされています。 「dsx - psdsy - psおよび texldd - ps」を参照してください。

プレディケーション

命令の割り当てがサポートされています。 述語の登録に関するページを参照してください。

依存読み取り制限

依存読み取り制限はありません。

テクスチャ命令の制限

テクスチャの指示に制限はありません。

命令数

各ピクセル シェーダーは、512 から MaxPixelShader30InstructionSlots (32768 以下) のスロットの数まで、任意の場所で許可されます。 ループのサポートにより、実行される命令の数がはるかに多くなる可能性があります。 MaxPShaderInstructionsExecuted は少なくとも 2^16 である必要があります。

サンプラー数

使用可能なテクスチャ サンプラーの数は 16 です。

デバイスキャップ

ps_3_0がサポートされている場合は、ハードウェア (少なくとも) で次の大文字がサポートされます。

キャップ
MaxTextureWidth、MaxTextureHeight 各 4K
MaxTextureRepeat 8 K
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。 次の機能がサポートされています:プリディケーション、任意のスウィズル、グラデーション命令。 依存読み取り制限はなく、テクスチャと数学命令の組み合わせに制限はありません。
すべてのステンシル操作がサポートされています。 これには、両面ステンシルが含まれます。 D3DSTENCILOP を参照してください
頂点あたりのデバイス サポート ポイント サイズ D3DCAPS9 のD3DFVFCAPS_PSIZE
2 テクスチャサポートの非累乗。 完全サポートまたは条件付き非 pow-2 のサポート。デバイスは、D3DPTEXTURECAPS_SQUAREONLYのように正方形のテクスチャのみの制限を持つべきではありません。
デバイスで複数のレンダーターゲットがサポートされている場合は、次の大文字がサポートされます。 D3DPMISCCAPS_INDEPENDENTWRITEMASKS、D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
vs_3_0がサポートされている場合 D3DCAPS9 の MaxUserClipPlanes は 6 です

 

ピクセル シェーダー