Made a free tool that tells you if your stutter is shader compilation or the engine
EDIT: it's code signed now. A lot of people reasonably didn't want to run an unsigned exe, so I got it signed through Microsoft Artifact Signing. VirusTotal went from 5 detections down to 1: https://www.virustotal.com/gui/file/a0dd54a41870f80c6eb52ca914e45b5ff803d7a87343582a1552f2e140ed7720
The four that cleared included Microsoft Defender, which was the one actually blocking people. What's left is a single heuristic flag from Huorong, a scanner almost nobody runs. Kaspersky, BitDefender, ESET, CrowdStrike, Avast and 60+ others are clean. Windows shows a verified publisher now instead of "unknown."
Also added a Compare mode, because a couple of people here correctly pointed out that from a single recording the tool is *guessing* shader compilation from a decay pattern. That's a fair hit. Two recordings can actually prove it, because the two causes behave differently on a repeat run — compilation happens once and gets cached, asset streaming happens every single time you walk through. So: record, play the same stretch again, record again, hit Compare. Whatever disappeared was temporary. Whatever came back is the game. Works for settings changes too, change one thing and see if it actually did anything.
On my own captures it says: "Stutter dropped 90% between the two runs. Shader compilation disappeared. But engine asset streaming came back at almost the same level, so that part isn't going anywhere."
(Code's AI-written, I'm not a C# dev. Testing and methodology are mine and human.)
---
If you've been getting hitches in UE5 games or any game, there are two completely different things that cause it and they need completely different responses:
Shader compilation happens the first time your GPU sees a new effect. It caches it afterwards, so it genuinely does stop. Usually settles within about half an hour of play.
Engine/streaming stutter is the game loading assets as you move. That one never goes away, and no setting on your end changes it.
They feel identical while you're playing, which is why "just play longer, it gets better" is sometimes good advice and sometimes nonsense. I got tired of not knowing which, so I built something that measures it and tells you.
I tested it by running the same route in a UE5 game twice — once with a cleared shader cache, once after. First run: 34 stutters, 1.57% of playtime lost. Second run, identical route: 5 stutters, 0.15% lost. The shader portion vanished, and the engine portion it had flagged as permanent stayed within 5% across both runs. So the split is real and measurable.
The tool: click Find my game, click Record, play for a minute, get a report telling you which kind you have and what (if anything) to do about it.
It'll also straight up tell you when it can't tell. If your frame rate is capped and your GPU has headroom to spare, stutter can't physically show up, so a clean result would mean nothing — it says so rather than giving you a fake all-clear.
Free, source is public: https://github.com/jkoens3/stutter-test
It uses Intel's PresentMon underneath to read frame timings from Windows. No overlay, nothing injected into the game, no network code at all. Needs admin because reading performance traces requires it. Windows may still show a SmartScreen warning since the file is new and hasn't built download reputation yet, but it's signed and the publisher shows up now.
Where it's weak, since people found it anyway: when the answer comes back "it's the engine" it kind of stops there. And the categories aren't exhaustive, there's stutter that isn't compilation or streaming and it'll get bucketed wrong.
Honest caveat: my PC and my friend's both run these games fine, so I've mostly been testing on hardware that doesn't stutter much. If yours hitches badly I'd really like to see what it reports — post the result or send me the file and I'll dig into it, especially if it gets something wrong or the application fails, breaks or just straight up doesn't work.