我可以使用条件语句来最小化纹理的平均读取量,但是如果条件语句的成本很高,比如CPU(这会阻止预测等),那么它可能会导致复杂的代码没有任何收益,甚至效率较低。它们的成本会更高吗?
发布于 2018-04-30 22:29:59
着色器中的条件语句是否会带来更高的成本?
一如既往:视情况而定。没有什么是免费的。现代GPU可以很好地使用基于统一条件的分支。真正有害的是不均匀的控制流,这自然会导致没有利用所有可用的着色器ALU。使用嵌套的条件和/或循环,您可以很容易地在每个SIMT组中获得单个活动内核,这意味着丢弃31/32到63/64的潜在计算能力。
I可以使用条件语句来最小化从纹理读取的平均值
在非均匀控制流中进行纹理采样时要小心。根据规范,这将导致未定义的值。这里的问题是,你搞砸了纹理坐标导数的计算,所以如果需要使用放大或缩小过滤器,以及要使用哪个mipmap级别,GPU就不能进行分解。
https://stackoverflow.com/questions/50099843
复制相似问题