ps_3_0
プログラム可能なピクセル シェーダーは、ピクセル データに対して動作する一連の命令で構成されます。 ALU との間でデータの転送を登録します。 追加のコントロールを適用して、命令、結果、または書き込まれるデータを変更できます。
- ps_3_0手順 には、使用可能な手順の一覧が含まれています。
- ps_3_0 レジスタには、 ピクセル シェーダー ALU で使用されるさまざまな種類のレジスタが一覧表示されます。
- 修飾子 命令の動作方法を変更するために使用されます。
- 宛先レジスタ書き込みマスク は、書き込まれる宛先レジスタのコンポーネントを決定します。
- ピクセル シェーダー ソース レジスタ修飾子は、 命令を実行する前にソース レジスタ データを変更します。
- ソース レジスタ Swizzling を使用すると、読み取り、コピー、または書き込みされるレジスタ コンポーネントを追加で制御できます。
新機能
顔レジスタを追加します。 位置レジスタを追加します。 カラー レジスタ (v#) が完全に浮動小数点になり、テクスチャ座標レジスタ (t#) が統合されました。 入力宣言は使用名を受け取り、特定のレジスタのコンポーネントに対して複数の使用が許可されます。
動的フロー制御
デバイスは動的フロー制御をサポートします (bool - ps、 break - ps、 および break_comp - ps の場合)。 入れ子の深さは 0 から 24 の範囲です。
一時レジスタの数
サポートされている一時レジスタの数は 32 です。
静的フロー制御の入れ子の深さ
call - ps/callnz /call_predは、最大深度 4 に入れ子にすることができます。 個別に、 ループ - ps/rep - ps 命令を最大深度 4 に入れ子にすることができます。
任意のスウィズル
任意のスウィズルがサポートされています。 ソース レジスタのスウィズリングに関するページを参照してください。
グラデーション命令
グラデーション命令がサポートされています。 「dsx - ps、dsy - 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 です |
関連トピック