http://bugs.winehq.org/show_bug.cgi?id=17528
--- Comment #5 from Stefan Dösinger stefandoesinger@gmx.at 2009-02-28 05:04:25 --- Probably we stepped on the driver's toe and forced it to use a shader constant for its own use. The only line I can imagine is this one:
shader_addline(buffer, "MOV result.fogcoord, 0.0;\n");
0.0 may require a constant to load the immediate value. What happens if you comment out this line? There are alternative ways to say "0.0" that doesn't need an implicit value, for example
shader_addline(buffer, MOV result.fogcoord, helper_const.w;\n");
Since helper_const = { 2.0, -1.0, XX.0, 0.0 }