proton and linux gaming things [V1.0]
DLSS on linux
So first of all I do use nvidia GPUs for a few reasons, DLSS and NVENC being a couple so here is a quick guide on how to use DLSS on linux:
Steam
To run steam Proton games with dlss you just need to add a couple of launch options:
For DX12 games:
PROTON_ENABLE_NVAPI=1 %command%
For DX11 games (Also use with DX12 if you're having issues):
PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 %command%
Lutris
To run Lutris games with dlss it is a very simple toggle!
Right click the game > Config
> Runner options
tab > Enable DXVK-NVAPI / DLSS
It might be enabled by default already
Lutris troubleshooting
I had an issue where Cyberpunk 2077
wouldnt let me enable dlss after this feature was added, if you have an issue where you ran the game without DLSS enabled and now it wont let you enable it at all then this might fix it for you;
- go to the game's files
- in my case it was in
~/Games/cyberpunk2077/drive_c/GOG Games/Cyberpunk 2077/
- in my case it was in
- delte the
d3d11.log
anddxgi.log
files.- For me the files where named
Cyberpunk2077_d3d11.log
andCyberpunk2077_dxgi.log
so the file might have the games name in it for you too.
- For me the files where named
- Enable DLSS and run again
FPS overlay
Having a good FPS overlay is always a useful tool.
The best overlay I've found is Mangohud.
Credit: The Mangohud github page
The easiest way to configure Mangohud how you'd like it is to use Goverlay
Credit: The Goverlay github page
Proton optimisation
While a lot of games run with equal to or greater then windows performance now there are always some optimisations to make the experince more smooth. Hopefully in the future devs will provide presets for these on linux with the launch of the steam deck
Nvidia optimisations
I did say that I run an Nvidia card so this will be my starting point.
__GL_THREADED_OPTIMIZATION=1
- For OpenGL games this can give a performance boost.
__GL_SHADER_DISK_CACHE=1
- This will cache shaders as they are compiled so the gpu doesnt need to compile them again. Not all games need this but it can reduce stuttering more and more as you play.
__GL_SHADER_DISK_CACHE_PATH=/path/to/location
- This sets the location for the shader cache. I typically just put a
/cache
folder inside my game's folder.
- This sets the location for the shader cache. I typically just put a
AMD optimisations
I dont have an AMD card to test any of these on so refer to the ProtonDB page for more info
- Install Mesa drivers for AMD cards
- Refer to the DB page
- Using a mesa drive past version 19.3 will let steam use their newer ACO shader compiler
mesa_glthread=true
- Like
__GL_THREADED_OPTIMIZATION=1
but for AMD
- Like
Intel Optimisations
There arent any dedicated Intel GPUs in the wild for gaming yet, silly.
I will update this section when we get some actual information about them!
Universal optimisations
These are some optimisations that work on all GPU providers
- Feral Gamemode
- This is a tool made by Feral Interactive, They have ported games like
Total War: ROME REMASTERED
,Shadow of the Tomb Raider
andLife is Strange: Before the Storm
to linux! - The tweaks in this tool are typically already active in their own games but adding this to other Proton games can provide further performance imporovements in CPU limited situations
- It can be installed via your package manager of built using their git repo
- Add it to your steam game launch options like so:
gamemoderun %command%
- There is a toggle for this inside of Lutris too!
- This is a tool made by Feral Interactive, They have ported games like
- Custom Proton/Wine builds
- GloriousEggroll Proton this version typically provides extra fixes onto the current experimental version of Proton
- GloriousEggroll Wine these are basically the game builds but for use with Lutris or just to run normal Windows software
Credits:
GamingOnLinux; I found the DX11 and DX12 steam launch options here
ProtonDB; got some optimisation tips from their Performance page