News for hackers. Stuff that matters.
Re:Don't "optimize" conditional moves in shaders with mix()+... by account42 on Monday February 10, 2025 @04:26AM (#42998463)
> So, to answer your question - any computation based on shader inputs (vertices, computer shader indices and what not) cannot and won't branch.

It can do an actual branch if the condition ends up the same for the entire workgroup - or to be even more pedantic, for the part of the workgroup that is still alive.

You can also check that explicitly to e.g. take a faster special case branch if possible for the entire workgroup and otherwise a slower general case branch but also for the entire workgroup instead of doing both and then selecting.

Re:Don't "optimize" conditional moves in shaders with mix()+... by pandaman on Monday February 10, 2025 @07:18AM (#42999431)
And this is why I wrote There can be shortcut branches emitted by the compiler to quickly bypass computations when all ways are the same value but in general case everything will be computed for every condition being true as well as being false.