Snaplytics JS Tests

Frame Skipping Test

Check whether your display and system present a fresh frame on every refresh, or quietly drop some along the way. The test times each animation frame against your measured refresh rate and flags any gap where one or more frames went missing. Keep this tab focused while it runs for an accurate reading.

Hz

Live monitor running — keep this tab focused for an accurate reading.

Live
Recent framesOn timeSkipped
Collecting frames…
Refresh rate
Hz
On-time frames
0
Skipped
0
Skip rate
Longest gap

Camera capture strip (optional)

A marker advances one box per rendered frame. Photograph the screen with a fast shutter or record in slow motion — a missing step reveals a dropped frame. Secondary to the detector above.

How the detector works

The browser calls requestAnimationFrame once per display refresh, so the gap between callbacks should stay close to one refresh interval — about 16.7 ms on a 60 Hz panel or 6.9 ms at 144 Hz. The test records those gaps and takes the median to establish the expected interval, which also gives your true refresh rate. When a gap stretches to roughly 1.5× the expected interval or more, at least one frame was never presented; the test rounds the gap to the nearest whole number of intervals to estimate how many frames were dropped. Long pauses from switching tabs or minimizing the window are ignored rather than counted as skips.

Frame skipping versus stutter and judder

These terms overlap but describe different faults. Frame skipping (dropped frames) is when the pipeline fails to deliver a new image for a refresh cycle, so the previous frame is shown twice and motion appears to jump. Stutter is uneven frame pacing — frames arrive, but at irregular intervals — which looks hitchy even when nothing is technically dropped. Judder is the steady, rhythmic unevenness you get when a frame rate does not divide cleanly into the refresh rate, such as 24 fps film shown on a 60 Hz screen. This test targets true dropped frames at the refresh level; a run with zero skips can still feel less than perfectly smooth if pacing is uneven.

Why a monitor skips frames

  • Cable or bandwidth limits: a high refresh rate at high resolution can exceed what a cable or port version can carry, so the link drops frames. This is the classic cause of skipping only at a monitor’s maximum rate.
  • Overclocked refresh rates: pushing a panel above its rated Hz often looks stable but silently repeats frames instead of showing new ones.
  • GPU, driver, or thermal issues: outdated drivers, an overloaded or overheating GPU, or aggressive power saving can starve the display of finished frames.
  • Background load and browser throttling: heavy work in other tabs or apps, and the browser slowing requestAnimationFrame for unfocused tabs, both cause the gaps this test measures.

What this test does and does not measure

This is a browser-level test of the presentation pipeline — the display, cable, GPU output, driver, and browser — not of any single game engine. It reports how reliably your system hands finished frames to the monitor while this page is in focus. It cannot see frames a game renders internally, measure input latency, or replace a hardware pattern generator. For the most reliable result, plug a laptop in, close heavy background tabs, keep this tab focused, and let a full timed run complete. The optional capture strip below is for photographing the screen with a fast shutter, which can reveal skips that are hard to feel.