I have heard many times that if statements in shaders slow down the gpu massively. But I also heard that texture samples are very expensive.
Which one is more endurable? Which one is less impactful?
I am asking, because I need to decide on if I should multiply a value by 0, or put an if statement.
@Smorty Link doesn’t load for me and I don’t know the answer in general, but one thing I can say is that _sometimes_ if statements aren’t an issue at all, which is when the condition evaluates to the same thing for all pixels/fragments. E.g. an “if sin(TIME) < 0.0” costs you almost nothing, whereas “if COLOR.r > 0.5” causes execution to branch and slows you down. But I can’t say how that case compares to a texture lookup, I assume it depends on many thing
I’ve heard that using
mix()
instead (or whatever GDShader calls that GLSL function) can be more performant, since it doesn’t branch. Is that true?This post has no link. It’s a text post.