共用方式為


ps_3_0

可程式化的圖元著色器是由一組對圖元資料運作的指令所組成。 註冊在 ALU 中和移出傳輸資料。 您可以套用其他控制項來修改指令、結果或寫入的資料。

新功能

新增臉部暫存器。 新增位置暫存器。 色彩暫存器 (v#) 現在已完全浮點,且紋理座標暫存器已合併 (t#) 。 輸入宣告會採用使用方式名稱,並且允許指定暫存器元件使用多個用法。

動態流程式控制制

如果 bool - psbreak - psbreak_comp - ps) ,裝置支援動態流程 (控制。 巢狀深度的範圍從 0 到 24。

暫存暫存器數目

支援的暫存暫存器數目為 32。

靜態流程式控制制巢狀深度

呼叫 - ps/callnz /call_pred可以巢狀至最大深度 4。 獨立迴圈 - psrep - ps/ 指示可以巢狀至最大深度 4。

任意 Swizzle

支援任意的wizzle。 請參閱 來源暫存器

漸層指示

支援漸層指示。 請參閱 dsx - psdsy - pstexldd - ps

預測

支援指令述詞。 請參閱 述詞暫存器

相依讀取限制

沒有相依的讀取限制。

紋理指令限制

紋理指令沒有限制。

指令計數

每個圖元著色器都允許從 512 到 MaxPixelShader30InstructionSlots 中的插槽數目, (不超過 32768) 。 執行指令的數目可能會因為迴圈支援而更高。 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
已設定下列點陣上限: D3DPRASTERCAPS_MIPMAPLODBIAS、D3DPRASTERCAPS_ANISOTROPY、D3DPRASTERCAPS_COLORPERSPECTIVE、D3DCAPS9 中的 D3DPRASTERCAPS_SCISSORTEST
完整支援深度偏差,包括: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS、D3DPRASTERCAPS_DEPTHBIAS
深度和 Alpha 測試的完整比較集,包括: D3DCAPS9 中的所有 D3DPCMPCAPS。
來源混合模式 除了D3DPBLENDCAPS_SRCALPHASAT、D3DPBLENDCAPS_BOTHSRCALPHA和D3DPBLENDCAPS_BOTHINVSRCALPHA) 以外,所有混合模式都支援作為來源 (。
支援下列紋理上限: D3DPTEXTURECAPS_CUBEMAP、D3DPTEXTURECAPS_MIPCUBEMAP、D3DPTEXTURECAPS_MIPMAP、D3DPTEXTURECAPS_MIPVOLUMEMAP、D3DPTEXTURECAPS_PERSPECTIVE、D3DPTEXTURECAPS_PROJECTED、D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE D3DPTEXTURECAPS_VOLUMEMAP
紋理篩選端點、磁片區紋理篩選端點和 Cube 紋理篩選上限支援下列專案: 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

 

圖元著色器