我有很多用ShaderModel vs_1_1和ps_2_0编译的着色器(使用DirectX9)。如果我知道硬件支持更高的着色器模型(可能大多数支持3.0),那么我应该使用更高的着色器模型版本进行编译吗?更有表现力吗?还是更小的模型版本更有效?
发布于 2014-02-28 18:19:36
最简单的检查方法是使用不同配置文件的fxc和检查指令计数,在更高的版本中,您可以使用新的本质,从而减少总指令数。
我记得我努力适应ps_2_0的64限制,而ps_3_0的编译给了我63条指令。
我会(个人意见),使用着色器模型3,甚至手机支持的功能集。
当然,根据性能指标,您有不同的事情要考虑,因为您需要在算术/纹理获取/填充率之间取得平衡。
当然,越低越好在一般情况下,但1少算术将不会使您的系统更快,如果您抽签调用范围。
对于分析,如果您还没有使用这个特性,我强烈建议实现查询,在您的例子中,TimeStamp是最有用的。它允许您测量着色器执行时间。遮挡也是非常有用的测量透支在向前通过(填充率)。
https://stackoverflow.com/questions/21981860
复制相似问题