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.