An Update on Igalia's Layer Based SVG Engine in WebKit (Reducing Layer Overhead)
12 hours ago
- #WebKit
- #SVG Rendering
- #LBSE
- LBSE was bootstrapped upstream from 2021 to 2022, adding support for SVG building blocks.
- Work paused and resumed in 2023-2024 with Wix support, implementing advanced painting features like clipping and filters.
- LBSE aims to share rendering machinery with HTML/CSS to inherit performance improvements, unlike the legacy SVG engine.
- In 2026, Igalia invested in LBSE development to prove performance and attract partners for embedded UI.
- LBSE initially gave every SVG renderer a RenderLayer, which was wasteful but allowed rapid prototyping.
- After a pause, correctness fixes were made, including text rendering, filter issues, and crash resolutions.
- Performance is key: conditional layer creation was introduced to remove unnecessary layers, improving memory and per-frame overhead.
- Layers are now created only for intrinsic reasons like opacity, clipping, 3D transforms, while 2D transforms on leaf elements don't require layers.
- Transformed containers still need layers to maintain correct compositing for ancestor transforms.
- Conditional layer creation broke composited paint order, a problem to be addressed in a future post.