As much as I enjoy playing my games on PC, one issue makes me consider jumping back to consoles: microstutters.
You would think that with all the advancements in modern game engines, development pipelines, and consumer hardware, microstutters, or any form of hitching, would be a thing of the past. But unfortunately, that’s not reality.
That’s why when I came across a free diagnostic tool called Stuttometer, I knew my microstuttering problems were finally going to be fixed — and all it took was a few minutes of analysis.
Setting up Stuttometer is as easy as installing a game from Steam
Detailed stutter report at the push of a button
The idea of trying Stuttometer came from my somewhat rough experience with the recently released UE5 game Phantom Blade Zero. Unlike most Unreal Engine 5 releases this year, such as Silent Hill Townfall or Halo: Campaign Evolved, Phantom Blade Zero has no shader-related stutters. However, the latter, more open regions of the game are plagued by traversal stutters and microstutters, which severely hampered my experience.
What’s even more annoying is that, despite my hours of testing and trying different settings, I couldn’t figure out the root cause of the microstutters. With every passing year, we seem to be getting more and more games plagued by stuttering issues. What’s even more egregious is how difficult it is to diagnose and troubleshoot microstutters, especially in Unreal Engine 5 games.
That is when I decided to give Stuttometer a shot. Now, unlike most gaming-related applications on GitHub, Stuttometer isn’t a mod. It’s essentially an overlay, akin to MSI Afterburner or RTSS. As such, you don’t have to worry about having to meddle with your game’s installation directory or save files.
Installing Stuttometer is quite simple:
- Head to Stuttometer by xdr0p and download the program.
-
Once you extract the download, you have two options:
- Launch Stuttometer with its non-destructive environment and CLI capture: build > Release > stuttometer.exe.
- Launch Stuttometer with the desktop GUI: build > Release > stuttometer_gui.exe.
- After launching Stuttometer, you can minimize it or keep it running in the background.
Next, launch your game, and Stuttometer will automatically start recording data from the gameplay session. Additionally, you can press Ctrl+F11 to manually toggle background trace capture if you don’t want to close the game. Once you finish recording a gameplay session, you can export the created JSON file with detailed stutter count and history.
Not all microstutters have the same origin
And Stuttometer proves it
Generally, microstutters are a result of the game engine failing to render environment/scene assets on time. Previously, developers relied on triple-buffered V-sync to help eliminate microstutters. However, V-sync comes with its own downsides, such as incompatibility with FreeSync or G-sync-compatible displays. Furthermore, V-sync also comes with a substantial performance cost, without eliminating stutters.
Surprisingly enough, texture pop-in isn’t the only culprit behind microstutters in modern PC games.
For instance, while testing Cyberpunk 2077 using Stuttometer, I found the game was relatively stutter-free even with all the ray-tracing bells and whistles enabled. However, whenever the game tries to auto-save, it causes a microstutter, which is the only stuttering Stuttometer registered.
Stutters can be the result of poor texture streaming, low memory bandwidth, and incomplete shader compilation
This essentially means that the microstutters in Cyberpunk 2077 have nothing to do with GPU or CPU utilization. Instead, most microstutters result from how the engine writes data to the SSD.
Similarly, in Phantom Blade Zero, most stutters come from the game’s use of software RT for lighting. On Stuttometer, I saw a substantial difference in the frame-time graph by simply testing the game with RT enabled and disabled. Stuttometer also recommended recompiling shaders for the game and increasing the shader cache limit.
Surprisingly enough, increasing the shader cache limit did help reduce the traversal stutters in Phantom Blade Zero, albeit at the cost of additional SSD space.
Microstutters aren’t exclusive to PC gaming anymore
Generally, stuttering and other shader-related issues are associated with PC gaming. However, that cannot be further from the truth. While I do agree that PCs get the short end of the stick when it comes to technical issues such as stuttering, consoles aren’t exactly immune to this issue. For instance, well, Cyberpunk 2077 is still plagued with annoying traversal hitches on PS5 and the Nintendo Switch 2. In fact, on PS5, the streaming stutters are far worse than on PC.
Similar microstutters caused by traversal-related loading also plague PlayStation’s own first-party releases, like Saros and Rise of the Ronin.
That said, consoles do have an edge over PCs when it comes to shader compilation stutters. Unlike on PC, where every game needs to compute shaders after a fresh driver installation, consoles don’t have a separate shader compilation process. This is because consoles have a unified architecture and configuration. This lets developers ship shader data alongside the game’s code, since they don’t have to account for varying GPU or CPU configurations on consoles.
However, on the PC side of things, there are infinite configurations that no developer can fully account for. As such, shaders have to be installed (and configured) manually each time a game or video driver is installed/updated. That said, Nvidia’s Advanced Shader Delivery and Steam’s shader pre-caching are a good step forward in fixing the shader-related issues on PC.
Both features let you pre-cache shaders for a select few games before you even press “play” by downloading relevant shader data alongside the game/update.
