-
Notifications
You must be signed in to change notification settings - Fork 32
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
DLSS Can't Be Enabled in Watch Dogs: Legion #55
Comments
Thanks for the report. Unfortunately there is not really something that looks unusual in the dxvk-nvapi logs. Edit: Scratch that question about dxgi, I forgot that dxvk-nvapi does not work without DXVK's dxgi ;). Anyway, logs are looking pretty normal. You could try to run the nvapi64-tests.exe in that prefix to check if the nvapi sysinfo methods return sensible data (esp. the adapter LUID). But I'm pretty sure that all is good there. |
Lol yeah I was gonna say, I replaced lutris-ge-6.21 (the wine version I'm using)'s dxgi.dlls with DXVKs manually and everything before I saw this. Damn I just realized I'd changed the path of my DXVK log file for that prefix. Lol oops. Anyway it looks normal, but here it is:
Looks like it's supposed to, right? That's rough that there are seemingly so many instances where dxvk-nvapi just doesn't work without any indication as to why. Can Nvidia not help you out with this or would you need to talk to the Legion devs? |
Thanks, looks good. So yeah, dunno what the game wants to allow DLSS... |
I dunno if lutris has any default options for "enabling DLSS", but if you are running from a regular wineprefix you created yourself and not by using steam/proton, you need to manually copy the nVidia dlss files into the prefix, and create dll overrides.
Depending on distro i guess.. But both these files need to be in |
Lutris has a toggle, but when 0.5.9 was in -git and not released as stable yet, the toggle didn't work so I had to install everything manually, so I already know. And it's not nvngx doesn't enter into it as the Nvidia driver's included nvngx is loaded automatically. Running |
I don't use Lutris, so i did not know it did something similar to what steam/proton does.
Does that not kinda contradict what you said above? Or do you mean it does not need an override? (Eg. if using wine-tkg/wine-lutris with https://github.com/lutris/wine/blob/lutris-fshack-6.21/lutris-patches/ngx_dll_regkey.mypatch ) |
Yeah sorry the wording wasn't great, I meant nvngx doesn't enter into the process of getting a game working with DLSS, not that it doesn't get used at all. That patch seems to just make sure that the search path is set to drive_c/windows/system32, it doesn't do any dll overrides. And none of my DLSS-game wineprefixes have a dll override set for nvngx.dll (and they all work with DLSS except WD:L). Though that patch is indeed required I assume (my wine builds also have it anyway) I just did a sanity check to make sure and used a script to manually launch Control Ultimate Edition (GOG version) from the command line with no nv-related dll overrides, and obviously DLSS didn't work, I added a DLL override for If nvngx.dll needed to be copied to the game directory and a dll override set for DLSS to work you'd think jens would add that to the README here. Though I guess it wouldn't hurt to try going ahead and manually adding a dll override for nvngx for this game specifically even though no other game needs it, this wouldn't be the first time one game needed somethng like this when other games worked without it. |
From my understanding dll overrides are only needed to control the behavior when there is both a native version and a wine version of a certain dll. Or if you want to disable loading a dll altogether. So yes, no dll override should be needed. |
Ah oki. As long as you either copy or symlink the system nvngx.dll/_nvngx.dll to your WINEPREFIX you dont need a WINEDLLOVERRIDE. (Or use Lutris/Steam that does it for you). Other than that, i cant say anything in particular is standing out from that log.. Guess you need to check wine logs to see if it is actually being loaded?
Or for all we know
could be required.... |
@gardotd426 Could you try #56 ? I really hope this makes no difference, but may be the games expects a certain driver setting. Actually only difference should be some more log statements. |
Sure thing as soon as I get home from these errands I'll build it and test
…On Tue, Nov 16, 2021 at 1:39 PM Jens Peters ***@***.***> wrote:
@gardotd426 <https://github.com/gardotd426> Could you try #56
<#56> ? I really hope this makes
no difference, but may be the games expects a certain driver setting.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AM5Y3325FCIWNMSBKU2YO33UMKQNJANCNFSM5H7Z3LLA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Even if it does not solve this particular issue, it does make the log look at bit cleaner and potentially has the benefit of maybe seeing if a app tries to check for a spesific setting if i understand this line correctly |
No change with that branch |
Could you please add the logs? Just curious which settings that game wants to know about. |
|
These are the old logs ;) |
It's from this morning built from the DRS branch. |
Here, I've built it in a fresh git clone checking out that branch directly (instead of just cd-ing into my
|
Is it a needed reason for |
I get that stupid "you're trying to run on an old/unsupported graphics driver" and it annoys me. Let me try without it. |
Yeah no change.
I'm guessing that |
The result from the function is |
Other than that, i do not have any immediate ideas, since the log kinda does not indicate DLSS being polled or attempted enabled, so if If there was something like |
Thanks for the updated logs. So unfortunately no idea which precondition is missing for this game. May be indeed the currently unknown methods, but to verify that we need to wait for updated headers. Anyway. thanks for your patience! |
The nVidia demo - RTX Showcase (The Attic) can be downloaded from here: https://www.geeks3d.com/20210419/nvidia-rtx-tech-demo-the-attic-ray-tracing-unreal-engine/ This has both raytracing and dlss as various toggle options. It seems to not run raytracing with vkd3d and 495.44 driver, but works on 470.xx branch drivers (pref. beta). Raytracing is not a prerequisit of DLSS tho, so it would not really matter. The demo runs fine without RT if you do not use |
I have DLSS working in Control, Cyberpunk 2077, and Ghostrunner (all of which are non-Steam versions so I'm using wine+dxvk+vkd3d-proton+dxvk-nvapi same as with WD:L). Also in Doom Eternal and Wolfenstein Youngblood on Steam but that's a bit different as it's native Vulkan and not DX12 But yeah I know RT has nothing to do with DLSS but if both options are greyed out then it might point to something else being wrong but RT isn't grayed out, I can enable it in WD:L (it causes the game to crash but that's a vkd3d-proton thing obvs) I will check out that demo though as I've been meaning to do that anyway, thanks for the link. I'll throw another install on my secondary / partition that I keep for testing out new releases of Ubuntu/Pop/etc and for debugging and put 470 on it so I don't have to keep installing 495 -> 470 back and forth. |
Been toying around with Will fiddle with the other "unknown" there to see if it is easier to get something out of that. |
Hello. I actually have DLSS working in WD:L. I did not know this was an issue until I made a reddit reply commenting how I have DLSS, just not RayTracing. How can I contribute? Should I compress my prefix and upload, and share my settings? Using WD:L v1.5.6 with all DLCs unlocked. I am only able to run DX12 if any testing needs to be done on my end. It is worth noting!!! DLSS works fine up until the point that an overlay comes up (like for hacking and finding electronics etc). At this point, the game goes full black, minus a few directional arrows, or so. You can go through the menu, disable DLSS, complete what you need with the overlay, and then re-enable DLSS. All DLSS qualities do the same behavior. Using all latest DXVK - v1.9.2L-3e64e1b (v1.9.3 breaks DLSS for me), VKD3D - v2.5L-db89d40, D3D Extras - v2, DXVK-NVAPI - v0.5.1-e23d450, Wine 7.0RC3-1-x86_x64-Glorious Eggroll, Esync, Fsync on. NVIDIA driver 495.46, RTX 3080 FTW3 Ultra, i7-6700k, using X server, no wayland. I did do d3d9-d3d12 dll overrides to native, as well as nvapi, nvapi64, nvcuda. and then a few winetricks deps. Shouldn't matter, but Pop OS 21.10 , 5.15.14-xanmod1 (please no hate for custom kernel, it helps my specific use-case for multipurpose system and I/O RAID stability on MDADM). |
This makes zero sense. As I said, I actually have Ray Tracing as an option (though it obviously doesn't work, it instantly hangs the GPU, but it's able to be enabled) but DLSS is grayed out. Even though I have DLSS working in literally every single DLSS 2.X game I own. It works in Control (EGS), Control Ultimate Edition (GOG), Cyberpunk 2077 (GOG), Ghostrunner (GOG), and several other games that are Vulkan rather than DX12 (like Doom Eternal and Wolfenstein: Youngblood).
Which ones?
That's interesting. Are you saying it breaks DLSS in everything or just in Watch Dogs: Legion? |
nothing fancy. dotnet40, dotnet48, and vcrun2019. i honestly do not know why mine works. this is nothing special.
tbh, i have not tested it in others. i was only commenting on this particular game. |
If anyone wants, I have compressed my entire setup (no game files included). this has working DLSS. remember, any tim an overlay comes up, it will blackscreen. you can still use menu and disable DLSS during overlay black screen. hoping this helps the developer. if i can do anything at all, any logs, anything, let me know. prefix, lutris config, all dlls for dxvk, nvapi, etc. https://mega.nz/file/XJskgLQD#wwwmoiaUv1LBYcJJscWl2x7aJKjRwTM6mzQAiUg3xVk this is everything i use for mine. keep in mind, i use a drm-free, standalone, no launcher version. |
@Tilde88 Thanks a lot for commenting, good to read that at least some circumstances seem to convince the game to allow DLSS. Would be cool to get to know what exactly made this. Do you have the time to setup your prefix step by step and test DLSS availability between all steps?
I don't see any issues with DXVK 1.9.3 with DLSS in other games. D3D12, which above game seems to be, only uses dxgi.dll from DXVK. There weren't much changes in dxgi between both versions. What did exactly break? |
I don't mind recreating the prefix from scratch. I'm on a drive back from a
client now. Will be a few hours at least.
…On Friday, January 14, 2022, Jens Peters ***@***.***> wrote:
@Tilde88 <https://github.com/Tilde88> Thanks a lot for commenting, good
to read that at least some circumstances seem to convince the game to allow
DLSS. Would be cool to get to know what exactly made this. Do you have the
time to setup your prefix step by step and test DLSS availability between
all steps?
That's interesting. Are you saying it breaks DLSS in *everything* or just
in Watch Dogs: Legion?
tbh, i have not tested it in others. i was only commenting on this
particular game.
I don't see any issues with DXVK 1.9.3 with DLSS in other games. D3D12,
which above game seems to be, only uses dxgi.dll from DXVK. There weren't
much changes in dxgi between both versions. What did exactly break?
—
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AATNTKWMENAO5UADD5BOEYDUV73PJANCNFSM5H7Z3LLA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Oh, and what broke is simply the ability to enable dlss when I choose 1.9.3. by the way, did you see I uploaded the prefix,including all dx DLLs?
…On Friday, January 14, 2022, Jens Peters ***@***.***> wrote:
@Tilde88 <https://github.com/Tilde88> Thanks a lot for commenting, good
to read that at least some circumstances seem to convince the game to allow
DLSS. Would be cool to get to know what exactly made this. Do you have the
time to setup your prefix step by step and test DLSS availability between
all steps?
That's interesting. Are you saying it breaks DLSS in *everything* or just
in Watch Dogs: Legion?
tbh, i have not tested it in others. i was only commenting on this
particular game.
I don't see any issues with DXVK 1.9.3 with DLSS in other games. D3D12,
which above game seems to be, only uses dxgi.dll from DXVK. There weren't
much changes in dxgi between both versions. What did exactly break?
—
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AATNTKWMENAO5UADD5BOEYDUV73PJANCNFSM5H7Z3LLA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
just a small update. i went ahead and started a fresh prefix, did everything i remembered. it does not work. if i tell that same game container to run from the original prefix, it works. im going through directories now and DIFF'ing. only thing different in sys32 was a few .sys files, i copied them in, but no change. the WDL prefix i am using is based off of a template prefix that I used for some other games it seems. i found traces of Resident Evil 5, or 0. but those didnt need anything special other than Windows Media Player. i suspect something in the registry is tripping a flag and allowing it to enable. ill keep DIFF'ing until i find it. worry not! at least it has been narrowed down to the prefix. it does not appear to be anything in /windows. i was thinking maybe something in system32/drivers but nope CONFIRMED! Its something in the registry! In my brand new prefix, i removed the 3 .reg files, and copied the 3 .reg files from my working prefix. this allowed DLSS to be enabled. i will upload 2 sets of files. one set will be the "clean" .reg files from the brand new prefix. the other set will include the 3 .reg files from my working WDL! hype! if anyone wants to find what it is exactly, they can do so. ill take a look too to see if its something i can Identify quickly. ill also include the step-by-step i wrote to make the prefix that ended up not working. it is useless but meh... i typed it so. |
Ok. Hello everyone. Please excuse the comment spam. As promised, here are the .reg files. https://mega.nz/file/fc1AmapL#uYvcR_tUeCHcrQhNk2uWl5WqT4bQx_P2kjCa8uYqvc8 here is the step-by-step for the non-working prefix. again, these instructions are not useful, as the prefix was unable to enable DLSS, until i replaced the .reg files. https://pastebin.com/a4RAjx3Z warning, i do not recommend replacing your .reg files like i did, as my 2 prefixes were nearly identical, and i do not use things like Ubisoft launcher and the like. i use a standalone copy of the game. a little background info on the prefix i have for the working DLSS and where it came from. (remember DLSS makes trhe screen game go black during overlays like hacking and finding electronics). this prefix was from a template prefix that i made for getting Resident Evil 0 HD and/or 5 to work on. RE5 needed WMP and i started the prefix as a WinXP 64 and started adding and installing things. until it worked. i then backed up the prefix, and created a script to clean userdata, and used that to then create a new prefix for RE0, install whatever runtimes, install game, copy the prefix, clean it out, remove userdata, etc. ... i then evetually installed probably more things, and finally my repack copy of this WD:Legion. this is why the registry is so much larger than a clean brand new prefix (by ~3megs), because I had previously been adding and installing things on previous games for the template. i use my template for each new game as a new prefix, but at the time, i had been updating the template without tracking it. nowadays i just create new prefix from clean template, install game, and go. i do test stability of each prefix before moving on. i also try to uninstall things not useful to the prefix, but windows' amazing registry just kinda, keeps traces of everything, always, for bill-gates-knows-why-reasons. it has proven to be quite useful, as apparently this was the key to getting DLSS on WD:L somwhere in those registry edits! hope someone finds what it is, i probably wont have time to play around with it any more tonight. but rest assured, the registry was the answer! |
One more update on the reg files. dont waste your time looking through system.reg. it isnt there. it is defitely in user.reg, which is great, since thats only 380kilobytes, not 10megs |
Ok everyone... final update. Answer is super simple lol. change DLL override for nvcuda. you can use "built-in", or "built-in then native"... thats it, that was the triggering factor. so much time for me to find that lmao. oh well. if you still have issues, follow my pastebin in the comment above, except change nvcuda to builtin. happy gaming! remember, DLSS makes the game go black when there is an in-game overlay |
Thanks a lot for the detailed investigation! The game wanting nvcuda to be present might indeed be a good explanation. “Built-in then native” should be the default in wine, was there something in your procedure that sets nvcuda to “native”, assuming that nvcuda was already present in your wine installation? |
Nvcuda automatically was set to "???", which i believe is just 'disabled'.
which is why i tampered to begin with i suppose
…On Sat, Jan 15, 2022 at 4:17 AM Jens Peters ***@***.***> wrote:
Thanks for the detailed investigation. The game wanting nvcuda to be
present might indeed be a good explanation. “Built-in then native” should
be the default in wine, was there something in your procedure that sets
nvcuda to “native”, assuming that nvcuda was already present in your wine
installation?
—
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AATNTKUXAWVXHI4AYUI5EETUWE3SRANCNFSM5H7Z3LLA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I have seen that happen from time to time for some unknown reason (to me). |
If it is indeed nvcuda that is missing, the reason why it is needed could be this: ValveSoftware/wine#119 (comment) |
Just to add some information about the previous nvngx discussion, I also needed to add nvngx.dll and _nvngx.dll (+ the native override) to my concerned wineprefix to make DLSS be activable in games (I don't use proton or lutris for various gog games), the nvapi dlls overrides alone were not suficient. |
This was never the issue. It was indeed Wine+the Nvidia driver is supposed to symlink Obviously, the symlinks are required, so if anyone is ever having issues with enabling DLSS, checking Anyway, @jp7677 it was indeed the That's obviously not a dxvk-nvapi issue. With DLSS enabled, my GPU will max out at 70% usage, and this is at 1440p. Anyway I'll move that discussion over to the vkd3d-proton guys, this issue is closed. The solution is to check As liam said in the issue thread @jp7677 linked, this is apparently only an issue in a very narrow range of DLSS versions, so this probably won't be something that comes up very often, but yeah, this one's solved, closing. |
Bare-bones wine-staging-7.0 does not create symlinks to Wine may also need the patch that adds NVIDIANGX to the registry (UE4 i think require this): In other words: If you want to use DLSS in a game/app, you can't just use default wine/wine-staging and think this works "out-of-the-box". Lutris and Steam Proton takes does all this for the user. Lutris provided wine versions also have these patches. Good you got the issue sorted tho 👍 |
with wine-ge 7.0 it didn't created the symlinks either for me |
@Tilde88 @gardotd426 Thanks a lot for the investigation and confirmation, I've added a note to https://github.com/jp7677/dxvk-nvapi/wiki/Quirks-for-usage-with-DXVK-NVAPI#dlss-2138-through-2140 @sigzegv yeah, |
Watch Dogs Legion has never worked with vkd3d-proton until very recently after some dxil fixes. However, the option for DLSS is grayed out, even though the option for ray tracing is not. Any time I've seen this on a DLSS 2.X game it's been because DXVK-NVAPI wasn't loaded for one reason or another. However, I'm getting a dxvk-nvapi.log, so it is in fact being loaded.
Log:
Weirdly enough, I'm not getting a dxgi.log.
Distribution: Arch
GPU: Nvidia RTX 3090 (EVGA XC3 Ultra)
Nvidia Driver: 495.44
Wine Version: lutris-ge-6.21
DXVK-NVAPI version: latest master
VKD3D-Proton version: latest master
The text was updated successfully, but these errors were encountered: