Compatibility Rework with DLSS handling #26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the compatiblity rework 2 with added patches for DLSS. It adds dxvk-nvapi and nvidia nvngx.dll handling, as well as a field for extra WINEDLLOVERRIDES. This will allow users to pass in extra windows dlls for reshade and other things. Most notably, the DLSS quality mod and FSR2 replacement mod both require passing a few extra dll overrides. Formatting is checked via the WineSettings.WineDLLOverrideIsValid() function. The "Enable DLSS" option will not appear if the nvngx.dll file cannot be found.
The launcher will search for nvngx.dll so the user does not have to do anything extra. It will search, in order, ~/.xlcore/compatibilitytool/nvidia, /lib64, /lib, /usr/lib64, and /usr/lib. As soon as it finds one, it will stop searching. This does work with flatpaks as well.
Two extra environment variables are provided to help:
XL_FORCE_DLSS
XL_NVNGXPATH
XL_NVNGXPATH=/lib/nvidia/wine
This also includes a placeholder download for a newer wine version beta-9.17.r0.g27b121f2 on my repo so that testing can actually be done. This will hopefully be replaced by an official link before this is used in a release build.
DLSS requires a newer version of wine. 9.0 and later should work, as well as most wine-ge builds >= 8 and my valvebe builds>= 8. It also requres DXVK >= 2.0. And a compatible nvidia gpu, of course.
This can be merged as is, or merged later over the top of PR goatcorp#64 (Compatibility rework 2). This requires the "Compatibility Rework with DLSS handling" PR in FFXIVQuickLauncher to be merged.
Working versions can be found here: https://github.com/rankynbass/XIVLauncher.Core/releases/tag/cr2-dlss-v1 (tarball, flatpak and AppImage)
Wine Tab:
Dxvk Tab, showing DLSS option: