El equipo de gráficos de Igalia ha completado la implementación de un compositor basado en Skia para reemplazar a TextureMapper en las versiones 2.54 de WPE WebKit y WebKitGTK. Este cambio técnico, motivado por la necesidad de modernizar el código y reducir la carga de mantenimiento, busca integrar las mejoras de rendimiento de Skia en el proceso de composición de la interfaz, no solo en el renderizado de contenido.
La transición se realizó mediante la creación de la clase SkiaCompositingLayer, que adapta el árbol de capas y las transformaciones geométricas. Inicialmente, la implementación fue neutra en pruebas de rendimiento como MotionMark, pero los problemas de rendimiento en filtros y máscaras se resolvieron optimizando el uso de SkColorFilter y eliminando superficies intermedias innecesarias. Para los máscaras de imagen y rutas de corte, se aprovecharon las APIs de Skia para simplificar la lógica y mejorar la eficiencia.
La implementación de contextos 3D y modos de mezcla fue más sencilla que en el sistema anterior, permitiendo corregir errores históricos como el ordenamiento incorrecto de capas (z-ordering). Sin embargo, el rendimiento en pruebas con muchas capas pequeñas se vio afectado por la cola de comandos interna de Ganesh. La solución final consistió en implementar una API personalizada para el 'batched painting', fusionando operaciones de dibujo para reducir la carga de CPU y mejorar la eficiencia en la transferencia de datos a la GPU. Este enfoque permite alcanzar aproximadamente el 93% del rendimiento de TextureMapper en las pruebas críticas, estableciendo una base más moderna y mantenible para el futuro de los navegadores basados en WebKit.
