Igalia, WebKit SVG 엔진의 레이어 오버헤드 줄이기: 조건부 레이어 생성 도입
An Update on Igalia's Layer Based SVG Engine in WebKit (Reducing Layer Overhead)
Igalia의 레이어 기반 SVG 엔진(LBSE)이 WebKit에 통합된 지 4년, 이제 성능 최적화의 핵심 단계에 접어들었습니다. 초기 설계는 모든 SVG 요소에 RenderLayer를 할당해 구현을 단순화했지만, 이는 수천 개의 도형이 있는 장면에서 심각한 오버헤드를 초래했습니다. 이번 글에서는 이 문제를 해결하기 위해 조건부 레이어 생성(conditional layer creation)을 도입한 과정을 설명합니다. 2D 변환만 있는 일반 경로와 도형은 레이어를 제거하고, 클리핑된 요소와 루트만 레이어를 유지하도록 변경했습니다. 이 변경은 MotionMark Suits 벤치마크에서 성능 향상을 목표로 하며, 향후 하드웨어 가속 SVG 엔진의 기반이 될 것입니다.
LBSE의 핵심은 성능이었습니다. 하드웨어 가속 애니메이션을 지원하도록 설계되었으며, 레이아웃과 래스터화를 건너뛰고 컴포지터가 변환을 적용할 수 있어 기존 엔진보다 훨씬 빠르게 실행될 수 있습니다.