Skip navigation

With a couple of embarassing bug fixes and the incremental evolution of the MSAA compositor for the cairo-gl backend, it is almost time for a new bugfix release – just one more bug to squash first.

In the meantime, I looked the performance of an older machine, a Pentium-III mobile processor with an 855gm (a gen2 Intel GPU). It is not a platform known for its high performance…

UXA vs SNA performance on 855gm

Outside of the singularly disappointing performance of the swap happy ocitysmap run, SNA performs adequately delivering performance at least as good as client-side rendering and often better. So even on these old machines we can run current applications fluidly, if not exactly with blistering performance. In contrast, with UXA reasonable performance is the exception rather than rule, with many scenarios where the driver is a CPU hog killing interactivity.


  1. All the work on SNA seems to be really paying off!

    I still have 3-4 working machines with 855GM, glad I’m not alone, and that some very welcome 2D performance is coming my way. I’m guessing then, that Atom-based machines with 945 will also post better results with SNA?

    • Yes, 945-class machines (gen3) also see benefit from the fundamental design changes for SNA. I’ve put up some comparisons between SNA and UXA in the past, will do so again in the near future, and if I have few years of spare cycles I could throw a glamor run into the mix…

  2. Hi Chris,

    What would be the design detail of SNA that would make it better that other acceleration architectures?



    • Difficult. To pick one, I would say it is: accelerate everything – you are only as fast as the slowest task. And critically, to actually offload computation onto the GPU you need to spend less time setting up the GPU than it would take for the CPU to complete the operation 😉 So the fundamental design change from UXA is to reintroduce pixmap migration, like EXA. But the key difference from both UXA and EXA is to do it efficiently and avoid migration at (almost) all cost, like nvidia. This means that the code has many, many different ways of doing the same operation that depend upon the current GPU state along with a revamp batch and buffer management system that aims to minimise the overhead of building GPU commands. In short, it does not pretend that efficient rendering is a trivial task.

  3. Have you managed to squeeze more performance out of the 855GM than the latest Windows drivers ever did?

    • Unfortunately it is an apples-to-oranges comparison, but in-browser firefox benchmarks perform a lot better under Linux than they did under Windows, and are faster than the trials I did with IE and Chrome. I felt reasonably elated. 🙂 And I know the gen2 backend can be improved further (not by much given the current state f XRender), given sufficient cause. However, when compared against ideal performance I have more serious worries with other generations, and of course I need to, first and foremost, make sure that the current+ generation is competitive.

      • Firefox uses Skia Library under Linux and also Azure API for canvas with backend of Skia on Linux.

        • ickle
        • Posted June 25, 2012 at 9:50 am
        • Permalink

        Firefox is still using Cairo, or at least up until the nightlies of a fortnight ago, on Linux and certainly not in any of the stable distributions. Azure has all the advantages of cairo-gl, that is none. It is still hampered by the restrictions of the OpenGL API and hindered by bad drivers. As for using skia, the trend is in the opposite direction…

        And the other important thing to note is that this was in the context of an i855gm, OpenGL 1.2 and incomplete driver support. If you think Azure is going to run at all well on that machine…

  4. Hi Chris,

    Any chance to get the 1.12.4 released (before Fedora 18 beta)?

    Any idea on what it would take to further h/w accelerate YouTube’s (in Chrome) fullscreen video playback on X/sna?


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: