我有很多着色器使用ShaderModel vs_1_1和ps_2_0(使用DirectX9)进行编译。如果我知道硬件支持更高的着色器模型(可能大多数将支持3.0),我应该使用更高的着色器模型版本进行编译吗?性能更高吗?或者较小的模型版本是否更有效?
答案 0 :(得分:0)
最简单的检查方法是使用不同配置文件的fxc并检查指令计数,在更高版本中,您可以使用可以减少总指令数量的新内在函数。
我记得很难适应ps_2_0中的64限制,而在ps_3_0中编译给了我63条指令。
我会(个人意见),使用着色器模型3 tho,甚至手机支持现在的功能集。
根据性能指标,您当然需要考虑不同的事情,因为您需要在算术/纹理提取/填充率之间取得平衡。
当然,一般来说越低越好,但如果你画了一个调用限制,那么少一个算法就不会让你的系统更快。
对于分析,如果您尚未使用此功能,我强烈建议您实施Queries,在您的情况下,TimeStamp是最有用的。它允许您测量着色器执行时间。遮挡对于正向通过(填充率)中的措施过度绘制也非常有用。