jp7677 / dxvk-nvapi

Alternative NVAPI implementation on top of DXVK.
MIT License
353 stars 32 forks source link

Does Proton experimental 7+ still need PROTON_ENABLE_NVAPI=1 #105

Closed luisalvarado closed 1 year ago

luisalvarado commented 1 year ago

Wanted to ask the guru here about this step

Proton 6.3-6 and newer includes DXVK-NVAPI but it is disabled by default.

Use PROTON_ENABLE_NVAPI=1 as game launch argument in Steam to enable DXVK-NVAPI. Use additionally PROTON_HIDE_NVIDIA_GPU=0 for certain titles that don't rely on D3D for obtaining the current GPU type and have this Proton setting applied. Copy and replace nvapi.dll/nvapi64.dll into the dist/lib/wine/nvapi/dist/lib64/wine/nvapi folder of your Proton installation, e.g. in ~/.steam/steam/steamapps/common/Proton 7.0/ if you want to manually update the included version

Is this still needed for proton experimental. Am using bleeding edge. And if so, is there a game I can test to see the difference between having it and not enabling it?

I was doing some videos at https://www.youtube.com/@xtremelinux but I want to make sure if I talk about this, I do not make any mistakes explaining the benefits and what is used for. Thank you.

jp7677 commented 1 year ago

Hi, thanks for asking here, I appreciate that you want to get the details correctly!

The situation is indeed slightly different for Proton Experimental. What differs is:

DXVK-NVAPI enables games to use DLSS, there are other minor benefits, but this the main winner. Having DXVK-NVAPI enables lets you enable and use DLSS on an NVIDIA GPU, without DXVK-NVAPI it is not available. Prominent titles are e.g. Cyberpunk 2077 or Death Stranding, but just look at the list in the proton startup script.

I hope this clarifies things. Feel free to ask more.

luisalvarado commented 1 year ago

Thank you so much for clearing a lot of stuff. Not only that but the additional information will also help so thank you again. So at the end, the end user still needs to set PROTON_ENABLE_NVAPI=1 but no need for the other one correct?

jp7677 commented 1 year ago

So at the end, the end user still needs to set PROTON_ENABLE_NVAPI=1 but no need for the other one correct?

Correct. That said, you only need to set PROTON_ENABLE_NVAPI=1 for Proton Experimental if you want to use it for games that are not in aforementioned list. Note that unconditionally enabling DXVK-NVAPI might also break games, Guardians of the Galaxy is an example. So there is still a minimal risk involved.

(PS: Please also read the first chapter in the readme about what DXVK-NVAPI is, and more important, what it is not. Its actually a very thin layer. The actual magic lives in DXVK/VKD3D-Proton and in the drivers.)

luisalvarado commented 1 year ago

Why thank you very much my good sir. I will go over everything as instructed. Thank you for the time and quality answers.