Chromium Blog

Introducing Skia Graphite: Chrome's rasterization backend for the future

thumbnail

Introduction

  • Skia Graphite is Chrome's new rasterization backend, designed to enhance performance and unlock future improvements in Chrome Graphics.

History of Skia in Chrome

  • Skia is used in Chrome to render paint commands from Blink and the browser UI, but faced performance issues with the evolving web complexity.
  • Ganesh was introduced as a GPU accelerated rasterization backend, but had limitations with specialized code paths and modern graphics API support.

Differences between Graphite and Ganesh

  • Graphite is designed to leverage modern graphics APIs like Metal, Vulkan, and D3D12, while Ganesh was originally on OpenGL ES.
  • Graphite uses 2D depth for clipping, while Ganesh maintained a clip stack.
  • Graphite's API is multi-threaded by default, allowing for better performance optimizations with modern graphics APIs.

Current Challenges and Future Improvements

  • Graphite aims to consolidate rendering pipelines to handle complex web content more effectively.
  • Dynamic changes to Graphite recordings, like translations, can improve performance, especially for simple content.