ps_3_0

可编程像素着色器由一组对像素数据进行作的指令组成。 注册传入和传出 ALU 中的数据。 可以应用其他控件来修改指令、结果或写入的数据。

新功能

添加人脸寄存器。 添加位置寄存器。 颜色寄存器(v#)现已完全浮点,纹理坐标寄存器(t#)已合并。 输入声明采用用法名称,给定寄存器的组件允许使用多个用法。

动态流控制

设备支持动态流控制(如果 bool - psbreak - psbreak_comp - ps)。 嵌套深度范围为 0 到 24。

临时寄存器数

支持的临时寄存器数为 32。

静态流控制嵌套深度

调用 - ps/callnz /call_pred 可以嵌套到最大深度为 4。 独立 循环 - ps/rep - ps 指令可以嵌套到最大深度为 4。

任意重排

支持任意重排。 请参阅 源注册重排

渐变指令

支持渐变指令。 请参阅 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
设置了以下光栅帽: D3DCAPS9中的D3DPRASTERCAPS_MIPMAPLODBIAS、D3DPRASTERCAPS_ANISOTROPY、D3DPRASTERCAPS_COLORPERSPECTIVE、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
纹理筛选器上限、卷纹理筛选器上限和多维数据集纹理筛选器上限支持以下各项: 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

 

像素着色器