Skip navigation

Last week saw a new release of glamor, a library for use by the 2D display drivers translating Render drawing commands into OpenGL (and then feeding them into a 3D driver). This release packs in a couple of standout features for cairo: trapezoid shaders and the ability to handle textures larger than supported by hardware. The development emphasis has been on performance, and indeed glamor-0.5 is much improved over glamor–0.4 as measured on Intel’s latest and greatest IvyBridge architecture.

Performance improvement of glamor 0.5 over 0.4

This is a graph of absolute time for each trace, shorter bars are quicker, and as can be seen the improvement is pretty good.

However, to keep this in perspective, lets compare against the standard 2D driver:
Performance improvement of glamor 0.5 over 0.4

Still plenty of room for improvement.



  1. Nifty. Is there a post on how you generate these charts?

    • The charts are just generated using the results of cairo-perf-trace over several runs fed through cairo-perf-chart. Both tools developed within cairo in order to perform this style of benchmarking.


    Cairo 1.12.4 released, please benchmark this new version release.

  3. Hello, how does this graph translate to architectures with much weaker processors (specifically thinking about 700 MHz single-issue ARM) ? Does the 2D driver depend on CPU power ?

    • The display driver is notoriously dependent upon CPU performance – if only because when testing the traces with a good driver, you are limited by the client. For these throughput tests, the goal is to saturate both the CPU and the GPU – so performance is critically dependent upon the CPU being able to create the GPU command stream in a timely fashion and keep the GPU from going idle. The principal issue here for glamor is the mesa state tracker and command emission is the rate limiting step – it is such a CPU hog that we are unable to keep the GPU busy, i.e. it takes longer for us to construct each command than it takes for the GPU to execute, and much longer than it would take the CPU to do the write to uncached memory.

      So yes, the driver does depend upon cpu power, and that needs to be taken into account when designing.

One Trackback/Pingback

  1. […] glamor-0.5 […]

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: