http://bugs.winehq.org/show_bug.cgi?id=13225
--- Comment #6 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-15 16:54:30 --- Created an attachment (id=13086) --> (http://bugs.winehq.org/attachment.cgi?id=13086) float precision hack
This seems to be some float precision issue. It depends on how hardware converts integer values to floating point or vice versa or how it compares it. So it's not surprising this could be different depending on a driver or depending on if it falls back to software rendering (I guess what LIBGL_ALWAYS_INDIRECT=1 is doing). Attached hack fixes it on my machine (geforce6100). At the moment, I'm not sure how to fix it properly, without possibly breaking some other games (or some other hardware) :(.
Please test it (the more hardware tested the better) and let me know how it works there.