Hasty Briefsbeta

Bilingual

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.