选了几块卡测了一下动态分支,结果如下:
FXAA(全屏后处理) 消耗时间(毫秒)
平台 优化前 优化后
GTX 550 4.5 1.6
6600 111 36.6
HD 2600 11.3 17.8
HD 4870 4.1 5.6
FXAA的shader是比较复杂的,有大约200条指令。但是有大量的像素不用做那么复杂的计算。
比较适合用动态分支。但经测试后发现A卡比较坑爹,反而变慢了。看来动态分支优化还得区别不同的平台。
有趣的是,在黑屏的情况下(也就是所有的像素都走简单分支),A卡也有非常大的性能提升。