DEV Community

Izanagi
Izanagi

Posted on

How to read FrameView and identify your actual performance bottleneck

NVIDIA FrameView (and similar tools like CapFrameX) give you frame time data that average FPS numbers hide. Here's how to read them.

Frame time vs FPS

FPS is an average. Frame time shows you every individual frame: how long it took to render, whether it was consistent, and where the spikes are.

Frame time (ms) = 1000 / FPS

At 144fps: 6.94ms per frame. A spike to 50ms = dropped to 20fps for that frame. You see it as a stutter.

What FrameView shows

99th percentile frame time: 99% of frames are faster than this. The inverse of "1% low FPS". This is what stutters feel like.

GPU utilization: if consistently below 95%, you're CPU-bound. If 99-100%, you're GPU-bound.

CPU0 and CPU1 frame times: CPU0 is the render thread. CPU1 is the game thread. If CPU thread times are long, you have CPU scheduling issues.

GPU render latency: time from GPU starting work to finishing. If high, GPU is overloaded.

Diagnosing from FrameView

GPU at 100%, CPU low, high GPU render latency: GPU bottleneck. Lower settings or upgrade GPU.

CPU high, GPU not at 100%: CPU bottleneck. This is where Windows scheduling tweaks help the most.

Both moderate, high frame times with spikes: background interference. Check what else is running.

High 1% frame time but good averages: micro-stutters from scheduling or MPO frame pacing.

IzanagiOP addresses CPU-bottleneck and scheduling-related frame time spikes. https://terweb.lt/

Top comments (0)