According to the link I posted, `saturate()` is the NVIDIA-only-but-fails-on-AMD way of doing `clamp(, 0.0, 1.0)`.  But I don't really know much about OpenGL at all.

I assume you're not saying that clamp() is not supported.  When you say it does not work you just mean that you don't get the desired effect?  Maybe it should be trunc() then?  Is there a good reason to allow it to overflow 1.0?

-[Unknown]