The frame-time table

“120 frames a second” is a marketing number. The number the machine works to is the other side of the same division: 8.3 milliseconds. That is how long everything — physics, AI, draw calls, the driver, the panel — has to finish before the frame is late. Put a rate in below and the table gives you the budget, what one hitch costs against it, and which screens can display the rate evenly.

fps
The rate you are actually getting, not the cap you set.
ms
One slow frame — a shader compile, a texture load, a garbage collection.

Frame budget

16.7ms

Everything the machine does for one frame has to finish in 16.7 ms. A 5.00 ms hitch is 30% of that budget, so the frame lands late and no whole frame is dropped.

On a screen running at

  • RefreshIntervalFrames held forEven?
  • 60 Hz 16.7 ms 1 refresh, every frame even
  • 75 Hz 13.3 ms 1 or 2 refreshes, alternating judder
  • 90 Hz 11.1 ms 1 or 2 refreshes, alternating judder
  • 120 Hz 8.33 ms 2 refreshes, every frame even
  • 144 Hz 6.94 ms 2 or 3 refreshes, alternating judder
  • 165 Hz 6.06 ms 2 or 3 refreshes, alternating judder
  • 240 Hz 4.17 ms 4 refreshes, every frame even

Assumes v-sync and a fixed refresh rate. A variable-refresh panel (G-Sync, FreeSync, VRR) makes the whole column irrelevant inside its range, which is the single most useful thing on a monitor spec sheet and the one printed smallest.

Nothing you type here leaves your browser.

Why the second half of the table matters

With v-sync on a fixed-refresh screen, a finished frame is not shown when it is ready — it is shown at the next refresh, and then held until the one after that. So a frame is always displayed for a whole number of refreshes.

If the refresh rate divides evenly by the frame rate, every frame is held for the same length of time and the motion is even: 60 fps on 120 Hz is two refreshes each, every time. If it does not divide, frames alternate — 60 fps on a 144 Hz panel is held for two refreshes, then three, then two — and that unevenness is what people are describing when they say a high frame rate still looks wrong. It is not a low number. It is an uneven one.

Variable refresh — G-Sync, FreeSync, VRR on a console or a TV — makes that whole column irrelevant inside its working range, because the panel waits for the frame instead of the other way round. It is the single most useful line on a monitor’s spec sheet and reliably the one printed smallest.

What a hitch costs

The same interruption is a different event at a different budget. A 5 ms stall — a shader compiling, a texture arriving, a garbage collection — is 15% of a 33 ms budget at 30 fps and gets absorbed. At 240 fps it is 120% of the budget: the frame is late and the one behind it is too.

This is why average frame rate is a poor measure and why 1% and 0.1% low figures exist. An average of 144 with regular 30 ms spikes feels worse than a locked 90. The average is the marketing number; the spikes are the experience.

Diminishing returns, exactly

  • 30 → 60 fps gives back 16.7 ms a frame.
  • 60 → 120 fps gives back 8.3 ms.
  • 120 → 240 fps gives back 4.2 ms — a quarter of the first step, for roughly the same money.

Every doubling halves the gain, because the gain is a difference of reciprocals. That is not an argument against high refresh rates; competitive players chase those last milliseconds for good reasons. It is an argument against reading the two upgrades as equivalent because both are “double”.

Nothing you type here leaves the browser. Nothing is stored and nothing is sent to us.