The Battle for 2D Acceleration

Short Talk
Scheduled: Friday, September 25, 2009 from 3:10 – 3:35pm in Salon E


The initial impetus for cairo-drm came from a desire to experiment with GEM on my i915, and a need to provide an acceleration architecture for the wayland system compositor. (wayland is a minimalistic compositor and input multiplexer that requires client-side rendering.) It proved very easy to incorporate a drm/i915 backend into cairo; first by adapting the existing EXA driver, then to extend it to provide full acceleration for all patterns and to accelerate some of cairo's higher level operations. (The i915 hardware does not seem amenable for offloading tessellation, which has limited just how much we can accelerate in the backend. On more capable hardware, such as the fully programmable i965, we should be able to achieve much more.)


Today we have several competing technologies with which to build a fully-accelerated cairo backend.

Over the last year just a single technology has matured that makes 2D client-side rendering palatable, GEM. By moving the memory management, command scheduling and execution into the kernel, any number of process can co-operate and focus on performing their own rendering via the GPU. cairo-drm-i915 has demonstrated just how easy it is to take an existing EXA driver, implement it as a cairo backend and supercharge its performance. Though people may prefer such work be done in a pixman-drm backend…

Then competing against cairo-drm are the various efforts to write a true cairo-gl backend. (glitz’s design of implementing XRender on top of OpenGL has proven to be too limiting.) Here people speculate whether interfacing directly with gallium (i.e. cairo being just another state-tracker) will be our panacea.

The goal is a fully-accelerated tessellator for high quality 2D interfaces, cairo on the gpu. The question is how?


linux, DRM, GEM, cairo, pixman, gallium


  • Biography

    Chris Wilson has been working on Cairo for a few years, doing all the boring bits such as testing and fixing the error handling as well as correcting many corner cases and gradually improving the performance of the library. Frustrated by the continuing lack of acceleration for much of the 2D rendering across the desktop, the time has come for him to leave the safe haven of Cairo and fix it. Or maybe he can do it all within Cairo…

Leave a private comment to organizers about this proposal