DemonKingSwarn / linux-gaming

Linux gaming guide for new linux gamers :)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Linux Gaming Guide

How to run games on Arch (and configure Steam and Proton).

Enable Game Mode scheduling

Game Mode configures CPU governer, scheduler, and process niceness for maximum performance for games. To enable Game Mode:

  1. First enable the multilib repo if you haven’t already. Edit /etc/pacman.conf to add
    [multilib]
    Include = /etc/pacman.d/mirrorlist
        
  2. Synchronize the repos by sudo pacman -Syy
  3. Install Game Mode
    sudo pacman -S lib32-gamemode gamemode
        
  4. You can run Game Mode by running gamemoderun command.
  5. Create a new user group with sudo groupadd -r gamemode.
  6. Add yourself to the group by sudo usermod -aG gamemode <your username>.
  7. Edit system security limits for users sudo nvim /etc/security/limits.conf to add the line:
    @gamemode      -        nice         10
        

This will enable user accounts that are members of the gamemode group to increase (or ‘renice’) processes to a value of 10.

  1. Now test everything is working by running gamemoded -t and fix any errors (hopefully none).

Enable FSync

To uitlize that fsync patch in linux kernel you have to add this line in /etc/security/limits.conf

<your username>   hard    nofile     524288

Installing Stuffs

Wine

sudo pacman -S wine

Proton-GE

Go to GitHub Releases and download the latest version, as of today 25th Feb 2023 its 7.49 so I will be using that for this guide.

cd .steam/steam/compatibilitytools.d/
wget "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-49/GE-Proton7-49.tar.gz"
tar -xvf GE-Proton7-49.tar.gz
rm *.tar.gz

DXVK & VKD3D

NOTE: for this you have to use the AUR helper

paru -S dxvk-bin vkd3d-proton-bin
/usr/share/dxvk/setup_dxvk.sh install
/usr/share/vkd3d-proton/setup_vkd3d_proton.sh install

vkbasalt

Improves rendering of textures, gotta love the open source community

paru -S vkbasalt lib32-vkbasalt

gamescope

gamescope is pretty amazing, its a wayland based compositor for games which also removes the vsync barrier of wayland and also HDR.

paru -S gamescope xwm

If you are on NVIDIA GPU then to use gamescope you need this script which I call it gamescope-run

#!/bin/sh

export AMD_VULKAN_ICD=RADV
igpu=$(lspci -nn | sed -n '/VGA/{s/^.*\[//;s/\].*$//;p;q}')

gamescope --default-touch-mode 4 --prefer-vk-device $igpu --rt -w 1920 -h 1080 -W 1920 -H 1080 -f -U $@

For games outside of steam

In that case you have to use this proton script I made to run those cracked games, yes I know it, with the same optimizations

#!/bin/sh

PROTON="$HOME/.steam/steam/compatibilitytools.d/GE-Proton7-48/proton"
STEAM_COMPAT_DATA_PATH="$HOME/.proton" STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" VKD3D_CONFIG=dxr PROTON_ENABLE_NVAPI=1 __VK_LAYER_NV_optimus=NVIDIA_only VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json __GL_SHADER_DISK_CACHE=1 WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FAKE_CURRENT_RES=960x540 ENABLE_VKBASALT=1 LD_PRELOAD=$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so.0 "$PROTON" run $*

You can remove the PROTON_ENABLE_NVAPI=1 and other NVIDIA variables if you don’t have a NVIDIA GPU.

HDR

So if you guys have a monitor which supports HDR output, then i would say use gamescope and proton only for gaming and use the following variable

DXVK_HDR=1

Done

Congratulations on completing the setup, now you can enjoy high end gaming on linux with optimized performance. Happy Gaming 😁.

About

Linux gaming guide for new linux gamers :)