ps_3_0

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

新功能

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

动态流控制

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

临时寄存器数

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

静态流控制嵌套深度

call - 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

 

像素着色器