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
| Document | Scope |
|---|---|
| glossary.md | Key terms and concepts |
| compositor-architecture.md | Overall compositor pipeline |
| property-trees.md | Property trees: transform, effect, clip, scroll data structures |
| render-surfaces.md | Render surfaces, effect isolation, blend modes, backdrop filters |
| damage-tracking.md | Per-surface damage computation, filter expansion, render pass skipping |
| paint-recording.md | DisplayItemList, PaintOp buffer, R-tree spatial index, RasterSource |
| tiling-and-rasterization.md | Tile grid, rasterization pipeline, GPU raster |
| tiling-deep-dive.md | Tiling source deep dive: sizing, drawing, invalidation, memory |
| memory-and-priority.md | Memory budgets, tile priority, eviction |
| scheduler.md | Frame scheduling, deadline modes, state machine, draw throttling |
| interaction-and-quality.md | Scroll/zoom behavior, checkerboarding, LOD during interaction |
| resolution-scaling-during-interaction.md | Source-level: pinch-zoom raster scale, stale-tile reuse, CoverageIterator |
| pinch-zoom-deep-dive.md | Pinch-zoom: GPU tile stretching, anchor point, settle/refine, data flow |
| effect-optimizations.md | Effect 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.