Layer Invalidation to Partial Swap
Blink28627 Nov 2025

Layer Invalidation to Partial Swap

The source details Chromium's damage tracking architecture, a critical mechanism within the cc compositor that identifies regions of the screen requiring redrawing to ensure rendering efficiency. This system distinguishes between content changes signaled by the renderer, known as paint invalidation, and internal compositor-driven updates, such as tile replacements, which generate damage rects. Changes propagate through the layer hierarchy via DamageTracker objects associated with RenderSurfaces, which carefully map localized layer modifications and property shifts (like transforms) into cumulative damage on the render target. In Chromium’s multi-process environment, the Viz SurfaceAggregator integrates damage rectangles from independently submitted child frames (SurfaceLayers) into a single, cohesive output. The final comprehensive damage rectangle is delivered with the CompositorFrame, enabling the graphics system to perform partial swaps and minimize buffer updates, thereby optimizing performance and power consumption. The architecture achieves efficiency by aggressively reusing unchanged resources, like previously rendered tiles and cached RenderPasses.

Avsnitt(497)

cc::PropertyTrees

cc::PropertyTrees

(TransformTree / ClipTree / EffectTree / ScrollTree) with nodes cc::TransformNode / ClipNode / EffectNode / ScrollNode — The impl‑side property‑tree state that positions, clips, blends, and scrolls co...

22 Sep 202534min

cc::LayerTreeHostImpl

cc::LayerTreeHostImpl

The compositor‑thread twin that owns the active/pending trees, runs impl‑side animations/scroll, and prepares draw. Implements cc::InputHandler for threaded scrolling/pinch.

22 Sep 202546min

main —> impl cc::LayerTreeHost

main —> impl cc::LayerTreeHost

Packages updated layers/property trees; kicks a commit to the compositor thread (via the proxy).

22 Sep 202536min

blink::PropertyTreeManager

blink::PropertyTreeManager

Bridges Blink’s paint property trees into cc property trees: creates/updates cc TransformNode, ClipNode, EffectNode, and ScrollNode (including inner/outer viewport scroll nodes).

22 Sep 202539min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

Decides what needs to be composited and prepares the main‑thread representation to feed cc (layers if needed, scrollbar compositing, etc.).

22 Sep 202542min

blink::PaintArtifact

blink::PaintArtifact

The immutable package of paint chunks + display items for this frame, used to drive compositing without re‑painting.

21 Sep 202536min

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

The paint property trees captured during painting (transform, clip, effect/opacity, scroll offset) that define visual & coordinate‑space state.

21 Sep 202541min

blink::PaintController

blink::PaintController

Records drawing into a DisplayItemList, segmenting it into PaintChunks keyed by property‑tree state. (Output: a PaintArtifact.)

21 Sep 202533min

Populärt inom Teknik

natets-morka-sida
uppgang-och-fall
market-makers
elbilsveckan
bilar-med-sladd
rss-technokratin
rss-laddstationen-med-elbilen-i-sverige
skogsforum-podcast
rss-elektrikerpodden
har-vi-akt-till-mars-an
bli-saker-podden
rss-veckans-ai
rss-uppgang-och-fall
rss-powerboat-sverige-podcast
developers-mer-an-bara-kod
rss-it-sakerhetspodden
hej-bruksbil
rss-fabriken-2
rss-snacka-om-ai
under-femton