【发布时间】:2010-11-28 22:30:45
【问题描述】:
我有一个带有分支的相当简单的片段着色器,我有点不确定 GLSL 编译器如何处理它以及它会如何影响性能。
uniform sampler2D sampler;
uniform vec2 texSize;
uniform vec2 targetSize;
void main()
{
vec4 color;
if(texSize == targetSize)
color = texture2DNearest(sampler, gl_TexCoord[0]);
else
color = texture2DBicubic(sampler, gl_TexCoord[0]);
gl_FragColor = color;
}
我从AMDs document 中读到,有时会执行两个分支,在这种情况下这不是一个好主意。没有更多信息也没有反汇编权限,我不确定该怎么想,如果这是一个问题,如何避免?
据我了解,基于统一变量的分支不会产生任何重大开销,因为它在单次传递中是恒定的?
【问题讨论】: