Skip navigation

A month in, and we’re starting to get some good feedback from people trying cairo-1.12. Unfortunately, it appears that we’ve exposed some bugs in a few drivers, though hopefully we will see driver updates to resolve those issues shortly. We also received a few bug reports against Cairo itself. The most bizarre perhaps was that LibreOffice failed to display the presentation slideshow. That turned out to be an inadvertent bug caught by better error detection – though since that affected the established API, we had to relax the checks somewhat. Along with a few other bug fixes, Cairo 1.12.2 was released.

In the last round of benchmarking I performed, some of you noticed that the glamor backend for the Intel driver was not included. It was left out for the simple reason that it was not able to complete the task. However with the first stable release of glamor-0.4, it is able to complete a benchmarking run. And so without further ado, let’s see how all the current drivers fare on a SandyBridge i5-2500 desktop with GT1 integrated graphics and a Radeon HD 5770 discrete GPU with cairo-1.12.2.

Performance of cairo-1.12.2 on i5-2500

This time the results are normalized to the performance with Xvfb. Any driver that performs a test faster is above the centre, any that were slower below. Again the general state of the drivers leave much to be desired, and despite the bold claims for glamor, in my testing it fails to improve upon UXA. Early days you might say.


  1. Very nice! You do an aswesome work! You should blog more often about your performance comparisons on uxa/sna/glamor.

  2. When can we expect decision on whether Intel will go with sna or glamor? Developing two solutions where one seems to be clearly superior is a waste of resources.

  3. Since development focuses on Wayland now, is the development of all these backends (uxa, sna etc) worth the effort ? Unless i got it wrong, the rendering on Wayland is done with cairo (with GL backend) so all these drivers will be obsolete in a year or so ? If i got it wrong can you please explain it to me ?

    Thanks in advance (and for your amazing work)

    • Wayland does not completely remove the desire for good performance on X, nor is the performance and flexilbity of cairo-gl a suitable replacement yet. So that leaves a lot of work to be done in the meantime if you are expecting to Wayland to even perform as well as the current crop of 2D drivers with Cairo. The one avenue that cairo-gl will be able to exploit is that the development of drivers for Render has been neglected for the last decade or so…

  4. The radeon drivers perform rather poorly in this benchmark, which also echoes my personal experiences with them. Do you know why that is the case?

    • The primary reason for noticeable slowdowns is the number of fallbacks hit. A fallback is when the driver can not accelerate an operation and instead uses the CPU to rasterise directly into video memory. Avoiding fallbacks at all costs is where the effort goes, and often requires the ability to workaround hardware limitations. At the moment in the radeon and nouveau drivers, fallbacks are often hit due to incomplete implementations and missing information being passed along the EXA interface.

      A secondary issue not reflected in these benchmarks, but still frequently encountered on the modern desktop are the non-RENDER paths. Only a handful (though the most common operations) are accelerated through EXA. If your desktop exercises one of the unaccelerated paths, again you will experience fallbacks and a slowdown – undoing all the effort you spent accelerating every other path.

        • default
        • Posted July 22, 2012 at 8:56 pm
        • Permalink

        >The primary reason for noticeable slowdowns is the number of fallbacks hit.

        That’s what I expected, but I’ve switched on fallback reporting in the Radeon DDX, and didn’t see any fallbacks that are hit often (except that the driver reports component alpha is not supported, but AFAIK this isn’t supported by any driver and EXA uses a fast workaround in this common case).

        So I wonder, is it just badly implemented in the driver? Is it the EXA framework? In practice I really feel the slowness in gnome-terminal or Evince, which uses poppler. Scrolling is very sluggish, and the benchmark traces confirm this, they’re almost an order of magnitude slower than the image backend!

        • ickle
        • Posted July 23, 2012 at 8:31 am
        • Permalink

        The magic CA workaround iirc does not trigger the fallback warning. And in the gnome-terminal case, it is the CA glyphs (rendering directly on the destination) that are triggering the fallback and the massive slowdown.

One Trackback/Pingback

  1. […] Still on the 2D side of things, a new Cairo 1.12.2 release went out. This is a largely bugfixing release, which fixed a large number of issues which were found out since the Cairo 1.12 got released. Chris Wilson has also carried out a performance evaluation of Cairo 1.12.2 with different backends in his blog. […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: