http://bugs.winehq.org/show_bug.cgi?id=16997
--- Comment #54 from Stefan Dösinger stefandoesinger@gmx.at 2009-03-03 05:34:46 --- Now that sounds odd. The only difference I can imagine are compile flags. Maybe you compiled one yourself, and the other with emerge?
If it is a matter of compile flags, this is probably and uninitialized variable. Which might be in Wine, or in the 3D driver.
A wild guess of something the patch changed: Can you try to replace the glFogf() with glFogfv()? The patch replaced the old glFogfv call with glFogf because there was no need to pass a 32 or 64 bit pointer instead of the 32 bit float value. But there might be a bug in the non-pointer version of that call. (happened in the GLSL uniform setting code some time ago)