RefreshRateTest
Technical Transparency

Testing Methodology & Limitations

RefreshRateTest is an independent browser-based display diagnostic utility. We believe in complete technical transparency: web applications observe browser animation callbacks, not the raw electrical clock of a display panel. Here is exactly how our tools calculate metrics and what their real-world boundaries are.

The Fundamental Distinction

A web browser executes inside an operating system compositor (such as Windows Desktop Window Manager or macOS Quartz). Our tests use standardized web APIs (requestAnimationFrame and performance.now()) to observe browser frame presentation cadence.

While this cadence closely reflects your monitor's active refresh rate under normal operating conditions, it is a software observation rather than an electrical probe or physical photodiode measurement.

Tool-by-Tool Calculation Breakdown

Review the mathematical formulas, data collection methods, and error bounds for each diagnostic test.

1. Refresh Rate (Hz) Estimation

How it works: The test registers a continuous animation callback loop via window.requestAnimationFrame. Each frame receives a high-resolution DOMHighResTimeStamp from the browser. We record the delta interval (Δt = time - previousTime) across consecutive frames.

Mathematics: Over a rolling sample window (or during the 3-second diagnostic interval), the observed frequency is calculated as:

Observed Hz = (Total Recorded Frames × 1000) / Elapsed Milliseconds

Nominal Frame Period: The nominal time allocated per frame is given by T = 1000 / Hz (e.g. 16.67ms at 60Hz, 6.94ms at 144Hz, 4.17ms at 240Hz). Note that frame period represents interval duration, not input latency or pixel response time.

Known Limitations: Background tasks, battery saver profiles, browser hardware acceleration toggles, and multi-monitor compositor pacing can cause the browser to present frames at a lower cadence than your panel's physical capability.

2. FPS Stress Test

How it works: Renders configurable particle counts (from 1,000 to 20,000 entities) on an HTML5 2D Canvas context. Each particle calculates position, velocity, and collision bounds per frame.

Distinction from Hz: Frame Rate (FPS) is the count of unique frames your CPU and GPU calculate each second. Hz is how many times the screen displays an image. In a browser, requestAnimationFrame will typically cap canvas updates at the monitor's active refresh rate due to V-Sync. Under heavy particle load, FPS drops when computation time exceeds the frame budget.

3. Dead Pixel Visual Inspection

How it works: Generates solid primary color fields (Pure Black, Pure White, Red, Green, Blue, Cyan, Magenta, Yellow) in full-screen mode.

Limitations: A web page cannot electronically probe individual transistor subpixels. This tool is a visual aid for human inspection to spot unlit (dead) or permanently lit (stuck) subpixels. The color-cycling stimulator rapidly alternates RGB values to attempt unstuck stimulation, but mechanical or manufacturing defects cannot be fixed by software.

4. Screen Tearing Demonstration

How it works: An animated vertical bar sweeps horizontally at user-selected speeds. Screen tearing occurs when a new frame is sent mid-refresh, splitting the scanout.

Browser Context: Modern web browsers enforce compositor-level V-Sync. Screen tearing visible within the browser typically indicates an issue in windowed presentation or multi-GPU driver handshakes, rather than standard desktop tearing.

5. Ghosting & Motion Blur Inspection

How it works: Moves high-contrast objects across varied background panels at calibrated pixel-per-second velocities to enable human pursuit tracking.

Important Scientific Distinction: Visual blur stems from two distinct physical sources:

  • Pixel Response Time (GtG): How long physical liquid crystals take to transition. Slow transitions cause trailing behind moving objects. Fast-IPS and OLED reduce this significantly.
  • Sample-and-Hold Retinal Persistence: How long each frame remains steadily lit on your retina while your eyes track motion. Even with a 0.03ms pixel response time, a 60Hz frame held for 16.67ms creates retinal blur. Higher refresh rates (144Hz, 240Hz, 540Hz) or backlight strobing directly reduce retinal persistence blur.

6. Visual Reaction Time Test

What it measures: End-to-end human cognitive reaction to an on-screen color transition, measured in milliseconds.

What it does NOT measure: This test does not isolate monitor input latency or click-to-photon latency. The recorded time combines human visual processing (typically 180–250ms), USB mouse input polling, operating system event dispatch, browser rendering delay, and monitor frame presentation.

Primary Standards & Documentation Sources

Our technical articles and cable bandwidth tables reference official standards and documentation published by industry bodies:

  • VESADisplayPort 1.4 & 2.1 Standard Specifications (UHBR10, UHBR13.5, UHBR20)
  • HDMI ForumHDMI 2.0 & 2.1 Specification Guidelines (Fixed Rate Link FRL 48Gbps)
  • W3C / WHATWGHTML Living Standard: requestAnimationFrame & High Resolution Time
  • Microsoft LearnDesktop Window Manager (DWM) & DirectX Flip Model Presentation