Bringing damage to the Skia compositor
After two posts on the layer-based SVG engine, this one moves to a very different corner of WebKit: the compositor that the WPE and GTK ports use to compose the final picture on the screen. It is something I have been working on together with Carlos Garcia Campos. Over the last couple of months we have been building a new compositor based on Skia to replace TextureMapper, the OpenGL-based compositor these ports have used for well over a decade. This new compositor is enabled by default in the freshly released WPE WebKit 2.54, and this post comes in two halves. The first is about the compositor itself, what it is and why we wanted it, which Carlos laid out in detail in his Web Engines Hackfest 2026 talk. The second, and the part I want to focus on, is something I built on top of it: teaching the compositor to repaint only the parts of a page that have actually changed from one frame to the next, rather than re-compositing the whole page every time. The idea goes by the name damage in graphics systems in general, and getting it to work well on the new compositor turned out to be an involved project. ...