Reproduces the rendering glitch affecting Chromium-based apps on Windows 11 24H2 / 25H2 with discrete GPUs. Tracked at Chromium 429859152 and electron/electron#46206.
The clip is 50 seconds of looping H.264+AAC video. If you see a full-frame flicker, screenshot the page — the big timer up top is screenshot-friendly and pins down exactly when the glitch fired. Use the native video controls to unmute; audio cutouts during a compositor freeze are a related symptom worth reporting.
These are heuristics. The browser's User-Agent Client Hints API only reports an approximate platform version, and GPU strings can be obscured by privacy settings. Treat the verdict as a guide — running the actual repro is the ground truth.
While watching the page, do any one of these to make Windows DWM re-evaluate which windows get hardware overlay planes — the action that trips the bug:
Repeat 2–3 times if needed — the bug doesn't always fire on the first transition.
The HUD on the left shows several signals. While the page is continuously visible and focused:
FRAME counter should always be incrementing.long pauses should stay at 0. Each increment is
a confirmed compositor freeze of >200ms while the page was visible and
focused — direct evidence of the bug.video fps should hover around the video's native rate (~30fps
for this clip). Sustained drops indicate dropped frames at the compositor.Bug present: the stripe freezes mid-scroll, or
the counter stops incrementing, or long pauses ticks up — while the
page is otherwise responsive. Clicking the page typically resumes it.
No bug: the stripe never stops, counter increments
continuously, and long pauses stays at 0 across multiple alt-tab cycles.
The bug isn't about fullscreen specifically — it's about any action that causes Windows DWM to re-evaluate Multi-Plane Overlay (MPO) assignments. Most of those actions (alt-tab, Win+D, window resize, switching apps) require user input that a web page can't initiate on your behalf.
Fullscreen is the one trigger we can offer as a clickable button — entering or exiting fullscreen mode forces DWM to rebuild its overlay assignments, the same kind of transition that alt-tabbing causes. It's not the most reliable trigger, just the most convenient one to put in a button. If clicking it doesn't immediately fire the bug, alt-tab is your next move.
FRAME / rAF fps — animation frames the page rendered.
If these stop incrementing while you can still see and interact with the page,
the compositor is frozen.
video fps / video frames — frames the browser actually
presented to the screen, via the
requestVideoFrameCallback
API. This number lagging behind elapsed × 30 is direct evidence the
compositor dropped your frames.
video dropped — count from
getVideoPlaybackQuality().droppedVideoFrames, the browser's own
dropped-frame counter.
long pauses — number of times requestAnimationFrame went
silent for over 200ms while the page was visible and focused.
Chrome blocks navigation to chrome:// URLs from a regular page.
Click any item below to copy it, then paste into the address bar.
Click Web Audio: OFF in the HUD (or load this page with
?webaudio=1) to wrap the <video> in a
Visibox-shaped Web Audio graph: createMediaElementSource →
per-input GainNode + parallel AnalyserNode tap →
a shared pre-master GainNode bus → master gain → destination.
A silent AudioBufferSourceNode permanently feeds the
pre-master bus (matches Visibox's keepalive); meter analysers are polled
at 200ms (master) and 66ms (per-input). Mirrors
src/renderers/output/AudioMixer.ts.
Use chrome://media-internals to watch
video_buffering_state for repeated
BUFFERING_HAVE_NOTHING / DECODER_UNDERFLOW entries while
capture is on. Toggle is one-way; reload the page to disable.
Per-app: chrome://flags/#use-angle → set to D3D9 or OpenGL.
(Note: loses HEVC hardware decode in some configurations.)
Win 11 24H2 system-wide: HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers OverlayMinFPS=0, restart.
Win 11 25H2 system-wide: HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers DisableOverlays=1, restart.