https://bugs.freedesktop.org/show_bug.cgi?id=85376
Matthew Woehlke mw_triad@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mw_triad@users.sourceforge. | |net
--- Comment #15 from Matthew Woehlke mw_triad@users.sourceforge.net --- Not sure if this is fixed or not, but I was able to isolate the GLSL where things go sideways.
This is broken:
prev.rgb = (prev.rgb * (256 - ifog) + cfogcolor.rgb * ifog) >> 8;
The above apparently should have the same effect as the following, which works correctly:
prev.r = (prev.r * (256 - ifog) + cfogcolor.r * ifog) >> 8; prev.g = (prev.g * (256 - ifog) + cfogcolor.g * ifog) >> 8; prev.b = (prev.b * (256 - ifog) + cfogcolor.b * ifog) >> 8;
So something is going sideways distributing the above operations across vector components. Seems reasonable to suspect code generation.
I tried splitting just the bitshift step with no effect, so my guess is that at least multiplying an int3 by an int is doing something wrong.