即使可以使用较低版本编译着色器,我是否应该支持更高的ShaderModel?

时间:2014-02-24 07:51:17

标签: shader hlsl directx-9

我有很多着色器使用ShaderModel vs_1_1和ps_2_0(使用DirectX9)进行编译。如果我知道硬件支持更高的着色器模型(可能大多数将支持3.0),我应该使用更高的着色器模型版本进行编译吗?性能更高吗?或者较小的模型版本是否更有效?

1 个答案:

答案 0 :(得分:0)

最简单的检查方法是使用不同配置文件的fxc并检查指令计数,在更高版本中,您可以使用可以减少总指令数量的新内在函数。

我记得很难适应ps_2_0中的64限制,而在ps_3_0中编译给了我63条指令。

我会(个人意见),使用着色器模型3 tho,甚至手机支持现在的功能集。

根据性能指标,您当然需要考虑不同的事情,因为您需要在算术/纹理提取/填充率之间取得平衡。

当然,一般来说越低越好,但如果你画了一个调用限制,那么少一个算法就不会让你的系统更快。

对于分析,如果您尚未使用此功能,我强烈建议您实施Queries,在您的情况下,TimeStamp是最有用的。它允许您测量着色器执行时间。遮挡对于正向通过(填充率)中的措施过度绘制也非常有用。