-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable dxvknvapi on more (DLSS) titles I've verified as functioning & stable #6227
Conversation
CW-Bug-Id: #21180
…mbies and Multiplayer. CW-Bug-Id: #21106
For Kaldi / Vosk.
For OpenFST.
For CI / bleeding-edge automation.
…recognized. From ValveSoftware#6079 Edited by Paul Gofman: - fixed behaviour for Vulkan instance type; - stylistic changes.
It contains libsoup.
…egistered_t() if win_func is NULL. CW-Bug-Id: #21313
CW-Bug-Id: #19027
I'd appreciate your thoughts on a discovery, @ivyl : Since I don't think Or maybe edit: a data point from testing which I forgot to add - just |
Ah, it's another flavor of the nvapihack we had to add. If you look into Steam provides us with compat config options using SteamPlay 2.0 Manifest which indeed has this option set for a few games:
I think
We have dxgi nvapi hack for the longest time. Even when we were using wined3d's dxgi we made changes to dxvk so all the logic and overrides are a part of dxvk_config.dll and we used that for overrides on our end. If memory serves me well I think that RDR2 was using also some other API (Vulkan?) and didn't like either the mismatch or tried to load nvapi if it saw Nvidia's vendor id there. |
Thanks! I'll go for that angle I reckon. |
…vgpu overridden by enablenvapi where defined
The Uncharted Legacy of Thieves collection could also be added to this list in my testing, it works on all settings, no crashes. |
proton
Outdated
@@ -1420,6 +1422,8 @@ class Session: | |||
|
|||
if "enablenvapi" in self.compat_config: | |||
self.env["DXVK_ENABLE_NVAPI"] = "1" | |||
# enablenvapi beats hidenvgpu | |||
self.env["PROTON_HIDE_NVIDIA_GPU"] = "0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you tested that it works? It doesn't look like it does.
in init_session()
we have a bunch of checks in the form:
self.check_environment("PROTON_HIDE_NVIDIA_GPU", "hidenvgpu")
self.check_environment("PROTON_ENABLE_NVAPI", "enablenvapi")
This converts the environment variables to entries in self.compat_config
.
If you look a bit down hidenvidiagpu
is handled as follows:
if "hidenvgpu" in self.compat_config:
self.env["WINE_HIDE_NVIDIA_GPU"] = "1"
Converting the compat_config
value in WINE_
prefixed variable that's then interpreted by Wine.
That's a few lines above this line, so it is too late to affect the outcome.
Something like this (untested) should make more sense:
diff --git a/proton b/proton
index 47e51897..46edef0a 100755
--- a/proton
+++ b/proton
@@ -1317,6 +1317,12 @@ class Session:
self.check_environment("PROTON_HEAP_DELAY_FREE", "heapdelayfree")
self.check_environment("PROTON_ENABLE_NVAPI", "enablenvapi")
+ if "enablenvapi" in self.compat_config:
+ self.env["DXVK_ENABLE_NVAPI"] = "1"
+ # enablenvapi beats hidenvgpu
+ if "hidenvgpu" in self.compat_config:
+ self.compat_config.remove("hidenvgpu")
+
if "noesync" in self.compat_config:
self.env.pop("WINEESYNC", "")
else:
5339633
to
082faef
Compare
I've pushed all but the RDR2 commits to experimental. It should appear in bleeding-edge soon. Thanks! |
Yeah well spotted! I did test that it works, but I had a testing error (I'd accidentally left the env var in the launch options too...) I've updated the RDR2 change again to override the right env var; would you like to pick it up from this branch or should I open a new PR? |
082faef
to
a1524f7
Compare
Sackboy is good too! |
This is now merged to experimental and should appear in the next experimental release. It's already in the bleeding-edge: https://github.com/ValveSoftware/Proton/commits/experimental-bleeding-edge-7.0-28117-20221101-pd31d72-w9c8813-d0b9f78-v4df366 I've taken a slightly different approach to overriding hidenvgpu. Feel free to open more PRs with more games. |
Expanding the verified list introduced in #6120 . This time, also, targeted at experimental_7.0. Thanks.