http://bugs.winehq.org/show_bug.cgi?id=31046
Bug #: 31046 Summary: Wine advertises 32bit depth buffer, behaves like 24bit Product: Wine Version: 1.5.7 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: billy65bob@gmail.com Classification: Unclassified
Created attachment 40757 --> http://bugs.winehq.org/attachment.cgi?id=40757 title screen: 32-bit Z buffer on wine (DirectX9 Hardware)
Title says it all really.
I'm currently playing a game in PCSX2 (Persona 4) and frankly it looks really bad. According to the application, wine is reporting a 32bit Z-buffer, but amusingly it behaves precisely how a 24bit buffer behaves in windows with this application.
http://bugs.winehq.org/show_bug.cgi?id=31046
--- Comment #1 from Kevin Meyer billy65bob@gmail.com 2012-06-27 13:31:12 CDT --- Created attachment 40758 --> http://bugs.winehq.org/attachment.cgi?id=40758 title screen; 32-bit Z buffer in Windows (DirectX9 hardware) - for comparison
http://bugs.winehq.org/show_bug.cgi?id=31046
tizbac2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tizbac2@gmail.com
--- Comment #2 from tizbac2@gmail.com 2012-09-08 13:32:34 CDT --- could be also the cause of broken shadows on crysis I , crysis II and mafia 2
http://bugs.winehq.org/show_bug.cgi?id=31046
--- Comment #3 from Kevin Meyer billy65bob@gmail.com 2012-09-08 21:23:27 CDT --- The description is somewhat inaccurate anyhoo, I need to clear up a few things. The second screenshot should read: title screen; 24bit Z-buffer + logz in Windows (DirectX9 Hardware). Wine provided identical results if I hex edit the embedded shaders in the plugin to force on logz.
I had a quick look through the code in both places. pcsx2 requests a D3DFMT_D32 surface (followed by D3DFMT_D32F_LOCKABLE and D3DFMT_D24S8 as fallbacks) wine provides one, which is mapped to a GL_DEPTH_COMPONENT32 surface. This is where the 32bit value comes from.
In Windows, the 24bit value comes from the fact that both D3DFMT_D32 and D3DFMT_D32F_LOCKABLE allocations fail, causing pcsx2 to fall back to the D3DFMT_D24S8 format. - but this is of no matter since a DirectX11 backend is provided (it uses a 32bit depth + 8bit stencil format there), but alas it doesn't work in wine... yet.
So to conclude, it would seem that wine is doing the right thing, but something is terribly wrong in the way it works. I've been talking to the pcsx2 devs a bit, and they seem to believe that a D3DFMT_D32 surface should provide ideal results (ie, as seen in the Windows screenshot) as opposed to what is seen in wine.
Since Identical results are possible in wine with D32 and Windows with D24S8. I currently have two theories - both of which are pure conjecture. 1) perhaps NVIDIA cannot allocate a GL_DEPTH_COMPONENT32 surface and silently falls back to GL_DEPTH_COMPONENT24. 2) genuine bugs and oversights in wined3d.
Also as a note, since the removal of the "Big X Lock," the GSdx plugin has been locking up almost every boot, and forgoing that, after a few seconds of rendering which makes it almost impossible to get anywhere there's actual 3D stuff. I think someone else already reported that though. But until that is fixed, I'll be unable to test any hacks or patches that make their way here to address this bug.
http://bugs.winehq.org/show_bug.cgi?id=31046
--- Comment #4 from Rico kgbricola@web.de 2012-09-09 03:35:01 CDT --- The lock up is probably bug 31406 . Maybe it blocks this bug ...
https://bugs.winehq.org/show_bug.cgi?id=31046
--- Comment #5 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for 2 years. Is this still an issue in current (1.7.28 or newer) wine? If so, please attach the terminal output in 1.7.28 (see http://wiki.winehq.org/FAQ#get_log).
https://bugs.winehq.org/show_bug.cgi?id=31046
--- Comment #6 from Kevin Meyer billy65bob@gmail.com --- As far as I know, nothing's been done about it yet.
Having learnt a bit more over the months, I don't think anything will (or can for that matter) be done until GL_ARB_clip_control is widely available.
https://bugs.winehq.org/show_bug.cgi?id=31046
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #7 from super_man@post.com --- (In reply to Kevin Meyer from comment #6)
As far as I know, nothing's been done about it yet.
Having learnt a bit more over the months, I don't think anything will (or can for that matter) be done until GL_ARB_clip_control is widely available.
According to
https://mesamatrix.net, GL_ARB_clip_control is done for all the drivers.
https://bugs.winehq.org/show_bug.cgi?id=31046
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=31046
mirh mirh@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mirh@protonmail.ch
--- Comment #8 from mirh mirh@protonmail.ch --- https://www.winehq.org/pipermail/wine-patches/2016-October/154736.html
Could this (wine 1.9.21) have helped?
https://bugs.winehq.org/show_bug.cgi?id=31046
soredake gi85qht0z@relay.firefox.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gi85qht0z@relay.firefox.com
https://bugs.winehq.org/show_bug.cgi?id=31046
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch
https://bugs.winehq.org/show_bug.cgi?id=31046
soredake broaden_acid002@simplelogin.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|broaden_acid002@simplelogin | |.com |