You are not logged in.
Hello everyone,
I’ve been using Linux on my university PC for a while and recently decided to install Arch on my desktop for gaming. I’ve relied on the Arch Wiki and some video guides to set up drivers and optimize performance, but I’m hitting a wall. I’m hesitant to fully commit because I’m worried about underperformance compared to Windows, and my experience so far isn’t helping.
On Windows, I was running games like God of War (2018) at a locked FPS (around 60, I assume), but on Arch, I’m getting 30 FPS with significant stuttering. It’s frustrating, and I’m starting to lose hope—tempted to switch back to Windows. I’m clearly doing something wrong despite following the Wiki, so I’d really appreciate advice on how to properly set up Arch for gaming, especially regarding drivers and performance tweaks.
Here’s my system info:
CPU: Intel i5-10400F (12)
GPU: NVIDIA GeForce RTX 3070
Kernel: 6.13.5-zen1-1-zen
DE: Plasma 6.3.2
And here are the NVIDIA-related packages I have installed (via yay):
local/egl-gbm 1.1.2-1
The GBM EGL external platform library
local/egl-wayland 4:1.1.18-1
EGLStream-based Wayland external platform
local/egl-x11 1.0.0-1
NVIDIA XLib and XCB EGL Platform Library
local/gwe 0.15.9-1
A system utility for controlling NVIDIA GPUs
local/lib32-libvdpau 1.5-3
Nvidia VDPAU library
local/lib32-nvidia-utils 570.124.04-1
NVIDIA drivers utilities (32-bit)
local/lib32-opencl-nvidia 570.124.04-1
OpenCL implemention for NVIDIA (32-bit)
local/libvdpau 1.5-3
Nvidia VDPAU library
local/libxnvctrl 570.124.04-1
NVIDIA NV-CONTROL X extension
local/nvidia 570.124.04-2
NVIDIA kernel modules
local/nvidia-settings 570.124.04-1
Tool for configuring the NVIDIA graphics driver
local/nvidia-utils 570.124.04-1
NVIDIA drivers utilities
local/opencl-nvidia 570.124.04-1
OpenCL implemention for NVIDIA
this is the grub setup
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia-drm.modeset=1"
GRUB_CMDLINE_LINUX="zswap.enabled=0 rootfstype=btrfs"
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
#GRUB_DISABLE_OS_PROBER=false
and i added the modules in mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=(btrfs nvidia_modeset nvidia_uvm nvidia_drm)
I’m launching games through Steam with Proton, but the performance is still far worse than Windows.
I’d love to stick with Arch, but I need to get this sorted. Thanks in advance for any help!
Last edited by hugana (2025-03-15 18:46:45)
Offline
Hello.
Nothing immediately suspicious to me there, but in my years of arch/linux, everything I used including advanced AAA titles work as well or better than on Windows, so I have hope.
https://www.protondb.com/ user reports for a given app can help indicate working proton builds or other tweaks.
That is where I discovered https://aur.archlinux.org/packages/proton-ge-custom-bin -- and so Stalker 2 in this case went from non-working with default proton to perfect.
Alternatively, testing with a different/default kernel might eliminate that as a cause.
Last edited by espresso (2025-03-13 03:21:38)
Offline
Please use [code][/code] tags, not "quote" tags. Edit your post in this regard.
plasma on X11 or on wayland? Does it matter?
qdbus6 org.kde.KWin /KWin supportInformation
I guess this is a hybrid system?
Apparently steam is supposed to automatically pick the GPU, but maybe it requires some help from prime-run, though 30fps sounds a lot like double syncing to 60Hz
On x11, disable the compositor (shift+alt+f12 - this does not work on wayland but will take any compositor syncing out of the equation) and
__GL_SYNC_TO_VBLANK=0 prime-run steam
resp. see https://wiki.archlinux.org/title/PRIME# … _using_GPU
And post your xorg log and the outputs of "glxinfo -B" and "prime-run glxinfo -B", https://wiki.archlinux.org/title/Xorg#General
Edit:
I’d love to stick with Arch, but I need want to get this sorted
Last edited by seth (2025-03-13 08:24:47)
Offline
Try installing wine bottles and try all the runtimes you can: Soda, syswine, GE proton, maybe others. Maybe you get lucky and it's just a bug in that version of Wine.
Steam's proton seems kind of bad, btw. I often see games run poorly or not at all with it, then with GE proton they work great. It also has dumb things like videos show a test image instead of playing because some video codecs are missing.
Try a bunch of different versions of the runtimes, by the way. No idea what the current latest Proton is, but for example if it's 9.*, worth trying 8.* and 7.* as well, sometimes several minor versions within those also. I've seen cases where a game will work with 7.* but not 8.* for example - newer is not always better with Wine, evidently.
Offline
You're using the -zen kernel, but you don't have the modules installed for that kernel, correct?
Offline
I switched to linux-lts, and followed the wiki more carefully and it all worked out.
I also installed nvidia-prime package and used this setting to run.
these are the settings i m using in steam currently:
mangohud gamemoderun DRI_PRIME=1 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
using the gamemode and magohud package
Offline