Table of Contents

Gaming on Linux

Distribution where Steam works well: Ubuntu, Fedora

Statistics

Tools

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

communities

Reddit:


[1] name e.g. from vulkaninfo | grep "deviceName"