http://bugs.winehq.org/show_bug.cgi?id=35207 --- Comment #13 from Henri Verbeet <hverbeet(a)gmail.com> --- (In reply to Stefan Dösinger from comment #12)
I haven't confirmed that this is what's going on beyond a doubt, but I'm quite convinced that this is the problem here. So the problem is essentially bug 26967. Only in the generic "GLSL underspecifies fp behaviour" way. In principle this is an invalid optimization. You can't optimize "(x + 1.0) * y" into "x * y + y" in IEEE fp mode, unless you have additional contraints on x and y. That's a different problem from the application depending on d3d9 fp rules. The only reason the driver can get away with this is because under a strict interpretation the GLSL spec before GL4 allows the driver to do just about anything, and even e.g. GLSL 4.30 says very little about infinities and NaNs.
I'd still argue that what the driver does isn't particularly useful behaviour, and it should either just use d3d9 floating point mode, or follow IEEE fp rules wrt. optimizations. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.