https://bugs.winehq.org/show_bug.cgi?id=38760
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |matteo.mystral@gmail.com
--- Comment #2 from Matteo Bruni matteo.mystral@gmail.com --- I thought we had a bug for this one already but I can't find it.
Anyway, I debugged this in the past and the issue here is that the game wants to do a multisample resolve of the depth buffer. There isn't a generic D3D9 way of doing this but Nvidia and AMD offer different hacks for that. The AMD way is RESZ, which is implemented in wined3d (actually IIRC I implemented it for this game). The Nvidia way is through nvapi.dll, which we don't implement.
Unfortunately this game (like WoW and probably most / all the games using this hack) doesn't check for RESZ at all on Nvidia GPUs but only looks for NVApi, fails to find it and skips the multisample resolve altogether. Broken water is the result.
It's not possible to use native nvapi.dll since it hooks into the Nvidia drivers. A workaround which should work instead is to override the GPU reported by wined3d to some AMD model e.g. via the VideoPciVendorID and VideoPciDeviceID registry keys.