Gaming on Linux
Distribution where Steam works well: Ubuntu, Fedora
Statistics
- ProtonDB statistics: 4500/6500 tested games work (70%).
- Out of the top 50 games, 70% work on Linux (Boiling Steam, 3/2021)
Tools
- GloriousEggroll builds: Proton-GE-Custom (for Steam), Wine-GE-Custom (for Lutris)
- ProtonUp-Qt – Install and manage Proton-GE for Steam and Wine-GE for Lutris via graphical user interface. Based on AUNaseef's ProtonUp, made with Python 3 and Qt 6.
DXVK
Run DX9/DX10/DX11 games on Linux through a Vulkan API conversion layer.
Github: doitsujin/dxvk
Integrated into Lutris.
Async patch: Sporif/dxvk-async
Environment Variables
Variable | effect | example value |
---|---|---|
DXVK_HUD | shows an in-game HUD | fps,frametimes,pipelines |
MANGOHUD | shows an extended ingame HUD, needs MangoHUD installed | 1 |
MANGOHUD_CONFIG | configures MangoHUD (see above) | hud_compact |
MESA_GLSL_CACHE_ENABLE | enables the GL shader cache | true |
MESA_GLSL_CACHE_DIR | sets the location of the GL shader cache | /tmp/ |
DRI_PRIME | selects GPU with multiple GPUs | 0 , 1 |
DXVK_FILTER_DEVICE_NAME | like DRI_PRIME, but filters by name1 | "Radeon RX" |
Proton
Proton is a plugin for Steam which enables playing Windows games on Linux. It's based on Wine and DXVK and has custom patches by Valve.
A custom distribution is available with GloriousEggroll/proton-ge-custom.
Fedora
You need to install lots of WINE dependencies!
dnf install alsa-plugins-pulseaudio.i686 glibc-devel.i686 glibc-devel libgcc.i686 libX11-devel.i686 freetype-devel.i686 libXcursor-devel.i686 libXi-devel.i686 libXext-devel.i686 libXxf86vm-devel.i686 libXrandr-devel.i686 libXinerama-devel.i686 mesa-libGLU-devel.i686 mesa-libOSMesa-devel.i686 libXrender-devel.i686 libpcap-devel.i686 ncurses-devel.i686 libzip-devel.i686 lcms2-devel.i686 zlib-devel.i686 libv4l-devel.i686 libgphoto2-devel.i686 cups-devel.i686 libxml2-devel.i686 openldap-devel.i686 libxslt-devel.i686 gnutls-devel.i686 libpng-devel.i686 flac-libs.i686 json-c.i686 libICE.i686 libSM.i686 libXtst.i686 libasyncns.i686 liberation-narrow-fonts.noarch libieee1284.i686 libogg.i686 libsndfile.i686 libuuid.i686 libva.i686 libvorbis.i686 libwayland-client.i686 libwayland-server.i686 llvm-libs.i686 mesa-dri-drivers.i686 mesa-filesystem.i686 mesa-libEGL.i686 mesa-libgbm.i686 nss-mdns.i686 ocl-icd.i686 pulseaudio-libs.i686 sane-backends-libs.i686 tcp_wrappers-libs.i686 unixODBC.i686 samba-common-tools.x86_64 samba-libs.x86_64 samba-winbind.x86_64 samba-winbind-clients.x86_64 samba-winbind-modules.x86_64 mesa-libGL-devel.i686 fontconfig-devel.i686 libXcomposite-devel.i686 libtiff-devel.i686 openal-soft-devel.i686 mesa-libOpenCL-devel.i686 opencl-utils-devel.i686 alsa-lib-devel.i686 gsm-devel.i686 libjpeg-turbo-devel.i686 pulseaudio-libs-devel.i686 pulseaudio-libs-devel gtk3-devel.i686 libattr-devel.i686 libva-devel.i686 libexif-devel.i686 libexif.i686 glib2-devel.i686 mpg123-devel.i686 mpg123-devel.x86_64 libcom_err-devel.i686 libcom_err-devel.x86_64 libFAudio-devel.i686 libFAudio-devel.x86_64 dnf groupinstall "C Development Tools and Libraries" dnf groupinstall "Development Tools" dnf install wine
Lutris
Launcher for all games present on your system, native and emulated. Installs your Windows games in Linux with Wine and DXVK. Can also emulate lots of (retro) consoles.
In Arch, install lutris-wine-meta
to get some 32bit libs which might be needed.
Get D9VK in Lutris
Not needed anymore – D9VK is integrated into DXVK since December 2019 (DXVK release v1.5).
Folder for runners: ~/.local/share/lutris/runtime/dxvk/
Set it manually in Configure → Runner options → DXVK version
FSync Kernel
- Fedora: gloriouseggroll/kernel COPR
communities
Reddit:
vulkaninfo | grep "deviceName"