Blink Compositor Promotion of CSS Animations
Blink2866 Marras 2025

Blink Compositor Promotion of CSS Animations

The technical sources provide an extensive analysis of how the Blink rendering engine (used in Chromium/Chrome) determines whether a CSS animation can be executed on the compositor thread instead of the main thread to improve performance and achieve smooth frame rates. This process involves a complex pipeline, beginning with style calculation and proceeding through layout and layer assignment, where an element must be assigned a composited layer and corresponding property tree nodes to be eligible for acceleration. The critical decision is made by the function CheckCanStartAnimationOnCompositor(), which only permits animations on a limited set of properties—primarily transform, opacity, filter, and backdrop-filter—while rejecting anything affecting layout or requiring frame-by-frame repainting. If accelerated, the animation’s keyframes are converted into CompositorAnimation objects and run by the GPU-assisted compositor, allowing the main thread to remain free for other tasks.