This is an automated archive made by the Lemmit Bot.
The original was posted on /r/linux_gaming by /u/LordErrorsomuch on 2025-08-01 01:41:05+00:00.
Skip to the results if you want a tldr.
Intro
Hello all, I’ve semi-recently switched to Linux full time and have been happy with it however I’ve noticed what I perceived to be a small increase in input latency despite performance being the same as far as I could tell. So I decided to do some testing. But not the camera pointed at a monitor method. You’ve perhaps seen Nvidia’s LDAT that takes a mouse button click and a sensor physically on the monitor to compare the latency between the click and the light coming from an action, usually a muzzle flash. However, that’s expensive to buy so I built my own with an arduino. I would post the code but because I was distro hopping I forgot to backup the sketch and it’s gone. But it’s still on the arduino so I can still use it.
How It Works
I have an arduino starter kit that comes with a button and a phototransistor. I also have a Logitech G903 that I took apart and connected the left mouse button to a button attached to the arduino. The mouse button outputs 3.3v and shorts when the button is clicked causing the mouse to register a click. So the arduino loops checking for when the mouse button output goes LOW. It then goes into a while(true) loop that checks the phototransistor and breaks the loop when the value from the transistor is high enough. It stores the time when the button is pressed and when the transistor reaches a high enough value then outputs the result in the serial monitor. You may be asking if the arduino is fast enough to do this without adding latency of its own that matters. I think it is plenty fast from my own testing. I found a script that tested how many times the main loop executed per second and it was in the 10s of thousands or over 10,000Hz even with all my code added. That would be nanosecond response times. If I hold a flashlight on the transistor and press the button it outputs 0ms consistently. I think the arduino is plenty fast to check the latency. I then hold the phototransistor up to the screen in front of the barrel of a gun. I chose overwatch 2 because of it’s kind of dark practice room and mcree’s gun having a large muzzle flash. I also managed to test Hell Let Loose which was harder. Each test was done 10 times had 10 shots with outliers resulting in a reset.
My Setup
I have a 5800x3d and a Radeon 7700xt, I used to have a 3080 but it died on me so this is AMD only testing. I’m using an Alienware 1440p 360hz OLED monitor as my main monitor. I tested this on CachyOS, KDE(Wayland) and Hyprland vs Win11. No VSync. KDE and Hyprland are separate installs on different drives both NVME. At some point I will test X11, probably xfce4 and maybe i3.
The Results
Tldr Windows wins, especially with AntiLag but Linux isn’t far behind and could probably beat it with some effort.
Overwatch 2 - 240 FPS In Game Limit(FPS chosen because this is what I can consistently hit in a real game)
Win 11
Avg 19 ms
Max 26 ms
Min 12 ms
Win 11 - Radeon Anti Lag
Avg 15 ms
Max 20 ms
Min 11 ms
Win 11 - Radeon Anti Lag Uncapped FPS / 512 FPS (was facing a wall, not much to render.)
Avg 20ms
Max 28ms
Min 14ms
Linux - CachyOS - KDE
Avg 24 ms
Max 29 ms
Min 20 ms
Linux - CachyOS - KDE - VRR (Wanted to see if VRR made a difference on my setup, it didn’t probably because of the monitor running at 360hz.)
Avg 23ms
Max 30ms
Min 19ms
Linux - CachyOS - Hyprland
Avg 24ms
Max 30ms
Min 17ms
Linux - CachyOS - Hyprland - Direct_Scanout=1
Avg 21ms
Max 29ms
Min 16ms
Linux - CachyOS - Hyprland - Direct_Scanout=1 - 360 FPS Limit(Can’t consistantly hit this on my setup, results will not apply in a real game)
Avg 19ms
Max 25ms
Min 15ms
Linux - CachyOS - Regular Kernel - Hyprland - Direct_Scanout=1
Avg 21ms
Max 26ms
Min 15ms
Linux - CachyOS - XFCE4 - No compositing
Avg 18ms
Max 29ms
Min 12ms
Linux - CachyOS - Regular Kernel - XFCE4 - No compositing
Avg 18ms
Max 26ms
Min 11ms
Hell Let Loose - Uncapped FPS
Win 11
Avg 30ms
Max 38ms
Min 21ms
Win 11 - Radeon Anti Lag
Avg 26ms
Max 39ms
Min 15ms
Linux - CachyOS - KDE
Avg 36ms
Max 43ms
Min 27ms
As you can see Windows has a slight edge over Linux, on Wayland at least. Direct scanout seems to make hyprland beat KDE a little. If I had to guess the compositor is adding a little latency but Radeon AntiLag also has an impact, there’s no reason that can’t work on Linux. Nvidia Reflex does I think. I wish I had a comparable Nvidia GPU to test but unfortunately I don’t. The performance hit on VK3d for Nvidia might give AMD the edge but I wonder if Reflex working on Linux would allow it to beat Windows in terms of latency.
If anyone has tips for lowering latency on Linux other then trying X11 with no compositor (which I’m going to do at some point) I would love to hear it. Or any critiques of my testing. I know it wasn’t totally scientific but I would bet these results are pretty true to life.
EDIT: Added XFCE4 with no compositing and normal linux kernel tests.