https://bugs.winehq.org/show_bug.cgi?id=45975
Bug ID: 45975 Summary: DirectX 10 games no longer work with nVidia legacy driver. Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: leslie_alistair@hotmail.com Distribution: ---
42b5d88f2e081d90195bd3cd1931929f84b26f45 Author: Zebediah Figura z.figura12@gmail.com 2018-10-09 05:25:39
wined3d: Implement depth bias clamp.
Based on a patch by Michael Müller.
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
The change "gl_info->supported[ARB_POLYGON_OFFSET_CLAMP]" added by Henri during his review which is causing the issue.
+ if (gl_info->supported[WINED3D_GL_VERSION_3_2] + && gl_info->supported[ARB_POLYGON_OFFSET_CLAMP] + && gl_info->supported[ARB_SAMPLER_OBJECTS])
I have a nVidia 8600 GT and 9600 GT which are both capable of running many DirectX 10 games however now they wont run under wine since the driver doesn't have ARB_POLYGON_OFFSET_CLAMP support.
The legacy driver doesn't have any other functions which could be used as a replacement for ARB_POLYGON_OFFSET_CLAMP.
Using glView, from Realtech VR, shows that the 8600 GT doesn't support ARB_POLYGON_OFFSET_CLAMP or infact any of the 4.6 standard GL functions. Maybe DirectX does Depth Bias Clamping internally if the card doesn't support it or maybe its part of the 10.1+ standard. No-one know for sure.
As Henri pointed out, it's not clear that Deapth Bais Clamping is actually a requirement for DirectX 10 but is rather implied based off https://docs.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-p...
It's now my understanding that if Depth Bais Clamping isn't supported then we may end up with minor Artefacts in some places, for some games. I'm sure users can live with a little glitch now and again, if it means they can play games that they know their hardware is perfectly capable of running.
There is an option to use the nouveau driver to workaround the issue, however for me this driver performs extremely badly when playing native games.
https://bugs.winehq.org/show_bug.cgi?id=45975
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |42b5d88f2e081d90195bd3cd193 | |1929f84b26f45 Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=45975
--- Comment #1 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Created attachment 62533 --> https://bugs.winehq.org/attachment.cgi?id=62533 Remove CLAMP check
https://bugs.winehq.org/show_bug.cgi?id=45975
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=45975
--- Comment #2 from Henri Verbeet hverbeet@gmail.com --- (In reply to Alistair Leslie-Hughes from comment #0)
Using glView, from Realtech VR, shows that the 8600 GT doesn't support ARB_POLYGON_OFFSET_CLAMP or infact any of the 4.6 standard GL functions. Maybe DirectX does Depth Bias Clamping internally if the card doesn't support it or maybe its part of the 10.1+ standard. No-one know for sure.
As Henri pointed out, it's not clear that Deapth Bais Clamping is actually a requirement for DirectX 10 but is rather implied based off https://docs.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics- programming-guide-output-merger-stage-depth-bias
No, that's a misunderstanding. It's clear that DepthBiasClamp is a requirement for Direct3D 10, MSDN just doesn't spell that out quite as clearly. It's also clear that the hardware is capable of the functionality, the NVIDIA legacy drivers for the GPU just don't expose that functionality because they became "legacy" before supporting the OpenGL extension.
It's now my understanding that if Depth Bais Clamping isn't supported then we may end up with minor Artefacts in some places, for some games. I'm sure users can live with a little glitch now and again, if it means they can play games that they know their hardware is perfectly capable of running.
That's certainly an acceptable hack for individual users, but not something we'd want in upstream Wine.
https://bugs.winehq.org/show_bug.cgi?id=45975
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED Staged patchset| |https://github.com/wine-sta | |ging/wine-staging/tree/mast | |er/patches/wined3d-Restore- | |DirectX10-Support
https://bugs.winehq.org/show_bug.cgi?id=45975
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |3.18 CC| |focht@gmx.net
https://bugs.winehq.org/show_bug.cgi?id=45975
mirh mirh@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mirh@protonmail.ch
--- Comment #3 from mirh mirh@protonmail.ch --- Wasn't there an extension already? https://www.gamedev.net/forums/topic/596741-depth-bias-clamping-in-opengl/?p...
https://bugs.winehq.org/show_bug.cgi?id=45975
--- Comment #4 from Henri Verbeet hverbeet@gmail.com --- (In reply to mirh from comment #3)
Wasn't there an extension already?
That's what we're using. The NVIDIA legacy drivers don't support it.
https://bugs.winehq.org/show_bug.cgi?id=45975
--- Comment #5 from mirh mirh@protonmail.ch --- Putting aside you had only mentioned ARB one, not EXT, I guess like you are right, since it seems only with 346 branch this came to linux https://www.geeks3d.com/20141114/nvidia-r346-16-for-linux-opengl-4-5-support...
https://bugs.winehq.org/show_bug.cgi?id=45975
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WONTFIX Status|STAGED |RESOLVED
--- Comment #6 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- The legacy nVidia driver hasn't been updated in a year.
Use the nouveau as it works.
https://bugs.winehq.org/show_bug.cgi?id=45975
--- Comment #7 from mirh mirh@protonmail.ch --- Ehrm.. Tesla is the only generation of cards I don't have recent hard numbers about, but saying that you should/could just use nouveau comfortably sounds pretty utopian. (at the really best, I could imagine you'd "just" have the annoyance of manual reclocking)
Now, reverting proper behavior for everyone does indeed seem backwards.. But there are also other choices? Be it a "don't check support" toggle, or making it unconditionally so and print a warning.
https://bugs.winehq.org/show_bug.cgi?id=45975
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Austin English austinenglish@gmail.com --- Closing.