Chromium Compositor Picture Layer Deep Dive
Blink28631 Okt 2025

Chromium Compositor Picture Layer Deep Dive

This source provides an extensive, practitioner-focused examination of the Chromium Compositor's PictureLayerImpl class and its associated tiling stack, which manages the rasterization and drawing of complex layer content originating from Skia recordings. The document systematically walks through the class's responsibilities, detailing how it handles tiling management, decides the raster scale and translation for content fidelity (including special rules for LCD text), and participates in the overall rendering pipeline by emitting draw quads. A major focus is placed on the difference between ideal scales (geometric target) and raster scales (policy choice driven by stability heuristics like pinch/animation) and the critical invariants, such as ensuring only one high-resolution tiling exists at the chosen raster scale. The text also includes practical tips for modifying the code, emphasizing stability and adherence to complex constraints like hardware-mandated maximum contents scale caps for masks.


Avsnitt(453)

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 inom Teknik

uppgang-och-fall
elbilsveckan
market-makers
rss-elektrikerpodden
bilar-med-sladd
skogsforum-podcast
rss-veckans-ai
har-vi-akt-till-mars-an
natets-morka-sida
gubbar-som-tjotar-om-bilar
developers-mer-an-bara-kod
rss-laddstationen-med-elbilen-i-sverige
rss-technokratin
rss-uppgang-och-fall
rss-it-sakerhetspodden
ai-sweden-podcast
bli-saker-podden
rss-powerboat-sverige-podcast
rss-snacka-om-ai
rss-ai-med-katarina-gospic-och-viggo-cavling