System Configuration#

The following tweaks improve the gaming experience on distributions that do not make a point of supporting gaming out of the box. Systems like Debian, Ubuntu, Fedora, and Void tend to ship with relatively conservative default values, and minimal additional software.

If WINE / Proton games fail to launch on your system, or you encounter performance problems, try making some of the recommended settings changes below.

Open File Limits#

The default open file limit must be increased for most WINE / Proton games to work. Without this, games may fail to start, or will unexpectedly crash.

  • You can check the current setting by issuing the following commands:

    • cat /etc/security/limits.conf | grep nofile
    • ulimit -n
    • ulimit -Hn
  • If any of the above return values less than 1048576, then you will need to edit /etc/security/limits.conf to include the following lines, usually at the bottom of the file:

* soft nofile 1048576
* hard nofile 1048576
  • Optional: replace * with your username to restrict the change to your account only.

  • A reboot is required for the change to take effect.

Memory Map Limit#

The Kernel’s default memory map limit must be increased for most WINE / Proton games to work. Without this, games may fail to start, or will unexpectedly crash.

  • You can check the current setting by issuing the following command:

    • sysctl -n vm.max_map_count
  • If the returned value is less than 1048576, then you will need to create /etc/sysctl.d/max_map_count.conf with the following contents:

vm.max_map_count=1048576
  • A reboot is required for the change to take effect.

Kernel Split-Lock Mitigation#

The Kernel’s Split-lock mitigation feature can cause stutters in the Steam UI and in some WINE / Proton games, including VRChat. If you encounter stutters, try disabling split-lock mitigation, but beware of the potential trade-offs.

  • You can check whether split-lock mitigation is enabled by issuing the following command:

    • sysctl -n kernel.split_lock_mitigate
  • If anything other than 0 is returned, you have some flavor of split-lock mitigation enabled on your system. To disable it, you will need to create /etc/sysctl.d/no-split-lock-mitigate.conf with the following contents:

kernel.split_lock_mitigate=0
  • A reboot is required for the change to take effect.

NTSYNC#

Making sure that NTSYNC is available and working on your system is key to getting maximum performance in WINE / Proton games.

  • You can check whether NTSYNC is available on your system by issuing the following command:

    • [ -c /dev/ntsync ] && echo "ok" || echo "no ntsync"
  • If ok is returned, then NTSYNC is available. If no ntsync is returned, then your system does not support it.

  • Troubleshooting NTSYNC:

    • First check your kernel version with uname -r.
    • If your kernel is older than 6.14, you need to update it.
    • If you have 6.14 or newer, but still no NTSYNC, check your kernel configuration with this command: zcat /proc/config.gz | grep CONFIG_NTSYNC
    • If CONFIG_NTSYNC=n is returned, then your kernel supports NTSYNC, but it was disabled when the kernel was compiled. You will need to either recompile the kernel yourself, or switch to a newer version that has CONFIG_NTSYNC=y set. (Both options are beyond the scope of this guide – consult your distro’s documentation.)

WINE / Proton Version#

  • Using an up-to-date version of Proton is critical for performance and stability when running Windows games on Linux. A WINE / Proton version of 11.0 or higher is recommended to ensure NTSYNC works properly.
  • You can check your available Proton versions under Steam Settings > Compatiblity. The latest stable build (Proton 11.0 at the time of writing) is usually a good choice.
  • Installing Proton-GE Latest can further improve performance beyond stock Proton, at the risk of increasing the chance of glitches and bugs.
  • For easier management of Proton versions, consider using the ProtonPlus flatpak.

Desktop Session Type#

  • Make sure you are running a Wayland desktop session!
  • Wayland sessions provide higher performance in most gaming situations.
  • You can check your session type with echo $XDG_SESSION_TYPE; it should return wayland.
  • If it says x11, try logging out, then changing your session type from your login manager.
  • If a wayland session is not available, consult your distro’s documentation for assistance on setting up a desktop environment with Wayland support.
  • If you are unsure what to use, KDE is recommended. Recent versions of KDE ship with very solid wayland support out of the box. (KDE/Wayland is the default configuration for most gaming-oriented distros.)