[Release] Stuttometer: Real-time micro-stutter diagnostic
Posted: 06 Sep 2026, 15:07
Hey everyone,
I built an open-source diagnostic utility called Stuttometer to solve a common frustration with tracking down intermittent micro-stutters and frame-pacing variance in Windows games.
Current profiling tools often leave a gap when diagnosing sporadic hitches:
• LatencyMon measures idle DPC/ISR execution, not active in-game frame delivery.
• PresentMon / CapFrameX show when a frametime spike occurs, but cannot identify the kernel or driver stall that caused it.
• Windows Performance Recorder (WPR/xperf) offers full system traces, but recording multi-gigabyte ETL files continuously is impractical for catching unpredictable hitches.
Stuttometer runs continuously in the background using a lightweight, lock-free in-memory flight recorder (~23 MB RAM, zero runtime heap allocations). When a frametime spike, cadence judder (oscillating frame delivery), compositor glitch, or audio dropout occurs, it freezes that capture window and correlates surrounding events:
• DPC / ISR Spikes: Identifies culpable drivers (nvlddmkm.sys, amdkmdag.sys, storport.sys, etc.).
• D3D12 Shader / PSO Compilation: Catches synchronous runtime pipeline creation stalls.
• GPU VRAM Paging & Demotion: Detects VidMm overcommit and PCIe thrashing.
• Thread Starvation & Memory Hitches: Flags involuntary context-switch preemption, hard page faults, and working-set trims.
Written in C++20 with a standalone native Win32 dark-mode GUI and a CLI version. Free and open-source under GPLv3.
You can find the source code and pre-built binaries on GitHub: https://github.com/xdr0p/stuttometer
Feedback from anyone testing frame pacing consistency or diagnosing elusive driver hitches on high-refresh/VRR displays is very welcome!
I built an open-source diagnostic utility called Stuttometer to solve a common frustration with tracking down intermittent micro-stutters and frame-pacing variance in Windows games.
Current profiling tools often leave a gap when diagnosing sporadic hitches:
• LatencyMon measures idle DPC/ISR execution, not active in-game frame delivery.
• PresentMon / CapFrameX show when a frametime spike occurs, but cannot identify the kernel or driver stall that caused it.
• Windows Performance Recorder (WPR/xperf) offers full system traces, but recording multi-gigabyte ETL files continuously is impractical for catching unpredictable hitches.
Stuttometer runs continuously in the background using a lightweight, lock-free in-memory flight recorder (~23 MB RAM, zero runtime heap allocations). When a frametime spike, cadence judder (oscillating frame delivery), compositor glitch, or audio dropout occurs, it freezes that capture window and correlates surrounding events:
• DPC / ISR Spikes: Identifies culpable drivers (nvlddmkm.sys, amdkmdag.sys, storport.sys, etc.).
• D3D12 Shader / PSO Compilation: Catches synchronous runtime pipeline creation stalls.
• GPU VRAM Paging & Demotion: Detects VidMm overcommit and PCIe thrashing.
• Thread Starvation & Memory Hitches: Flags involuntary context-switch preemption, hard page faults, and working-set trims.
Written in C++20 with a standalone native Win32 dark-mode GUI and a CLI version. Free and open-source under GPLv3.
You can find the source code and pre-built binaries on GitHub: https://github.com/xdr0p/stuttometer
Feedback from anyone testing frame pacing consistency or diagnosing elusive driver hitches on high-refresh/VRR displays is very welcome!