CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
-
soul4kills
- Posts: 104
- Joined: 01 Aug 2025, 01:30
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
The reason why the cap smooths out the spikes is because you're not bottlenecking your cpu core that the game is on anymore. Has nothing to do with network spikes. It's all related to the cpu waking up at each interval then being blasted with work because you have uncapped frames.
The reason why you're mistaking it as a network thing is because the uncapped game loop is starving the network driver of compute time. Because the network driver is most likely on the same core as the game. Because the single core bottleneck of uncapped frames.
So if you don't want spikes, then cap your frames. If you want uncapped frames then you have to live with the spikes. Or you could set the affinity for the game to not be on the first 2 cores. And see if that helps.
The reason why you're mistaking it as a network thing is because the uncapped game loop is starving the network driver of compute time. Because the network driver is most likely on the same core as the game. Because the single core bottleneck of uncapped frames.
So if you don't want spikes, then cap your frames. If you want uncapped frames then you have to live with the spikes. Or you could set the affinity for the game to not be on the first 2 cores. And see if that helps.
- unconnected
- Posts: 66
- Joined: 08 Oct 2023, 19:52
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
Appreciate the thought, but that doesn't really match what the data shows.
First off, the issue happens identically offline. If you load an empty local map, you get the exact same periodic 15.6ms spikes on GPU Wait, even though the network card is doing basically nothing and there are no incoming packets to process.
Also, looking directly at the engine's internal profiler in VConsole2, the networking nodes sit flat at around 0.09ms. The CPU isn't choking on network drivers or DPCs at all. That entire 4ms spike happens inside Client Rendering while the main thread waits to sync up with the render queue.

Capping the framerate does smooth out the graph, but only because you're forcing the CPU to sleep during the good frames so they match the slow ones. It hides the symptom, but the engine is still choking on that 64Hz loop.
- Chief Blur Buster
- Site Admin
- Posts: 12295
- Joined: 05 Dec 2013, 15:44
- Location: Toronto / Hamilton, Ontario, Canada
- Contact:
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
I am watching this thread with great interest.
I'm wondering if Chris (Battle(non)Sense) has a word to say about this.
I'm wondering if Chris (Battle(non)Sense) has a word to say about this.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on: BlueSky | Twitter | Facebook
Forum Rules wrote: 1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
2. Please report rule violations If you see a post that violates forum rules, then report the post.
3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!
-
vnb
- Posts: 112
- Joined: 04 Nov 2025, 14:44
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
thank you for doing this.unconnected wrote: ↑02 Oct 2026, 19:57Thanks for the input, I've tried with global timer resolution request on and it's even more clear now.soul4kills wrote: ↑02 Oct 2026, 14:4115.625 is exactly windows 11 default timer resolution. Windows 11 has a dynamic timer resolution where each app will wake up to do work at an independent interval. What you might be seeing is background processes waking up every 15.625ms to do work, and that is what's causing that issue.
Enable "GlobalTimerResolutionRequest" in your registry. And see if that interval changes.
Btw gpu wait spikes proves that the engine locks render pipeline when processing a tick
is it possible to run your test during a Face it game then on a community server (Cybershoke) for example? are those graph done on official Valve servers?
I am convinced that community servers like Cybershoke and others have completely different network settings server wise compared to Valve official servers or Face it, it would be very interesting to compare each visually and individually with your graphs.
- unconnected
- Posts: 66
- Joined: 08 Oct 2023, 19:52
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
Thanks for the bump.Chief Blur Buster wrote: ↑Yesterday, 16:12I am watching this thread with great interest.
I'm wondering if Chris (Battle(non)Sense) has a word to say about this.
I believe Chris moved on with life..
I hosted the tool on github pages here,
just do a capture with presentmon and upload the csv to the tool.
Also share results as I haven't tested how bad it is on lower-end systems
-
vnb
- Posts: 112
- Joined: 04 Nov 2025, 14:44
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
what do you mean?unconnected wrote: ↑Yesterday, 19:43I hosted the tool on github pages here,
just do a capture with presentmon and upload the csv to the tool.
Also share results as I haven't tested how bad it is on lower-end systems
i'm on 9800x3d / 5070 Ti definitely not lower end system.
i thought it would be interesting if we could get a comparison FACE IT / Cybershoke / Valve official servers and compare them with the first snapshot you shared.
-
Brutek_Vladimir
- Posts: 28
- Joined: 06 Sep 2018, 11:38
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
OP means YOU can do it, as you have all tools needed.
-
Babluga
- Posts: 24
- Joined: 30 Jan 2026, 02:45
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
In CS2, even on a DM server, my 1% lows are almost always above 500 FPS. However, every now and then, even when I’m standing in an area with little to no activity, it feels like the engine (or the CPU) suddenly stalls, causing the 1% lows to drop to around 200–250 FPS before recovering back to 500+.
I also noticed something interesting in the D2 benchmark: during the smoke tests, there is a significant increase in GPU load, with GPU usage reaching 90%+. At that point, the 1% lows increase dramatically and become much more consistent, with no dips during that load phase.
This makes me wonder whether the issue is related to the CPU/engine occasionally becoming the bottleneck while the GPU isn’t being fully utilized.
It also doesn’t seem to matter whether I cap the FPS at 400, 500, or 600 — the issue can still occur, because there are scenarios where the GPU simply won’t be above 90% utilization. I’m wondering if lowering the GPU clock might actually help in those situations by keeping the GPU more consistently loaded. I’m going to test an underclock and see if it makes any difference.
I also noticed something interesting in the D2 benchmark: during the smoke tests, there is a significant increase in GPU load, with GPU usage reaching 90%+. At that point, the 1% lows increase dramatically and become much more consistent, with no dips during that load phase.
This makes me wonder whether the issue is related to the CPU/engine occasionally becoming the bottleneck while the GPU isn’t being fully utilized.
It also doesn’t seem to matter whether I cap the FPS at 400, 500, or 600 — the issue can still occur, because there are scenarios where the GPU simply won’t be above 90% utilization. I’m wondering if lowering the GPU clock might actually help in those situations by keeping the GPU more consistently loaded. I’m going to test an underclock and see if it makes any difference.
-
cuaderno
- Posts: 22
- Joined: 02 Feb 2025, 20:26
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
This is on pracc DM server, fps_max 360, 9800x3d, 7900XTX

And this is with fps_max 0


And this is with fps_max 0

- unconnected
- Posts: 66
- Joined: 08 Oct 2023, 19:52
Re: CS2 Input Lag Explained - The Monolithic 64 Hz Client Simulation Tick Stalls the Render Thread
Thanks for the feedback!
I have some questions:
- Is HAGS on? If not - PresentMon uses legacy kernel scheduler which is not accurate.
- Is Antilag2 on? You might have prerendered frames in the queue which cause input lag but smooth out the graph.
- Are you on vulkan or dx11?

