Chrome RenderingNG: Paint Artifact and Compositor Architecture
Blink2865 Okt 2025

Chrome RenderingNG: Paint Artifact and Compositor Architecture

source provides an extensive, lecture-style examination of Chrome’s RenderingNG pipeline, specifically focusing on the roles of the PaintArtifact and the PaintArtifactCompositor. The text explains that the modern system uses Composite After Paint (CAP), where the paint stage first generates a PaintArtifact—an immutable object containing drawing commands grouped into paint chunks based on shared visual properties (property tree state). Subsequently, the PaintArtifactCompositor processes this artifact using a layerization algorithm to efficiently convert the paint chunks into GPU layers (cc::Layer objects). Crucially, this separation allows for direct property updates on the compositor thread for actions like scrolling and animations, which ensures smoothness without requiring main thread repainting.

Episoder(397)

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

gpu::SkiaOutputSurfaceImplOnGpu / gpu::CommandBuffer

Bridges Skia’s recorded commands to the GPU command buffer; submits and SwapBuffers to present. (Backend: GL/Vulkan/Metal via GPU process.)

23 Sep 202532min

viz::SkiaRenderer

viz::SkiaRenderer

Renderer that turns quads into Skia operations (recording DDLs / drawing to the output surface).

23 Sep 202552min

viz::Display

viz::Display

The display compositor that walks the aggregated render passes and issues draw commands for the final output.

23 Sep 202538min

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

cc::LayerTreeHostImpl (Input Handler & Scroll Logic)

Scroll processing and overscroll detection in the compositor. The LayerTreeHostImpl in cc implements the compositor-thread InputHandler that processes gesture scroll updates and flings. It manages the...

23 Sep 202527min

blink::EventHandler (Blink core input handling)

blink::EventHandler (Blink core input handling)

Scroll chain builder and overscroll chaining logic. Blink’s EventHandler is responsible for building the scroll chain (the sequence of nested scrollable ancestors) when the user scrolls an element . I...

23 Sep 202526min

blink::ElasticOverscrollController

blink::ElasticOverscrollController

Overscroll orchestration and animation. This Blink-side controller manages the rubber-banding (elastic stretch and rebound) effect when a scrollable area is overscrolled. It observes gesture scroll ev...

23 Sep 202526min

viz::Surface / SurfaceAggregator

viz::Surface / SurfaceAggregator

Receives frames from one or more surfaces (main page and OOPIFs), aggregates them into a single display frame.

23 Sep 202535min

viz::CompositorFrameSink (client side)

viz::CompositorFrameSink (client side)

The submission interface used by cc to hand the frame to viz.

23 Sep 202531min

Populært innen Teknologi

lydartikler-fra-aftenposten
romkapsel
smart-forklart
rss-avskiltet
tomprat-med-gunnar-tjomlid
nasjonal-sikkerhetsmyndighet-nsm
teknisk-sett
rss-impressions-2
shifter
energi-og-klima
rss-alt-vi-kan
teknologi-og-mennesker
elektropodden
pedagogisk-intelligens
hans-petter-og-co
fornybaren
rss-fjorsilkebris-podcast
kunstig-intelligens-med-morten-goodwin
rss-byggepodden
rss-polypod