본문으로 건너뛰기

Chromium Compositor Research

Research findings from reading the Chromium source code (chromium/cc/, chromium/components/viz/, chromium/third_party/blink/). Focused on the compositing, tiling, rasterization, and GPU rendering architecture.

These documents describe Chromium's mechanisms as-is, for use as reference material when designing rendering systems that face similar problems.

Documents

DocumentScope
glossary.mdKey terms and concepts
compositor-architecture.mdOverall compositor pipeline
property-trees.mdProperty trees: transform, effect, clip, scroll data structures
render-surfaces.mdRender surfaces, effect isolation, blend modes, backdrop filters
damage-tracking.mdPer-surface damage computation, filter expansion, render pass skipping
paint-recording.mdDisplayItemList, PaintOp buffer, R-tree spatial index, RasterSource
tiling-and-rasterization.mdTile grid, rasterization pipeline, GPU raster
tiling-deep-dive.mdTiling source deep dive: sizing, drawing, invalidation, memory
memory-and-priority.mdMemory budgets, tile priority, eviction
scheduler.mdFrame scheduling, deadline modes, state machine, draw throttling
interaction-and-quality.mdScroll/zoom behavior, checkerboarding, LOD during interaction
resolution-scaling-during-interaction.mdSource-level: pinch-zoom raster scale, stale-tile reuse, CoverageIterator
pinch-zoom-deep-dive.mdPinch-zoom: GPU tile stretching, anchor point, settle/refine, data flow
effect-optimizations.mdEffect optimization: filter demotion, render pass bypass, damage tracking

Source locations

All findings are from the cc/ (compositor), components/viz/ (display compositor), and third_party/blink/renderer/ (rendering engine) directories of the Chromium source tree.