[cairo] ANN: "Caskbench" performance benchmark

Bryce Harrington bryce at osg.samsung.com
Thu Sep 25 17:54:40 PDT 2014


At Samsung one of the projects I've been working on is a benchmark test
for comparing the performance of Cairo and Skia with EGL + MSAA, called
Caskbench.  I presented about this testing at LinuxConf US in Chicago
last month.

This is no where near as comprehensive or meticulous as Cairo's
performance test suite, but it runs quickly, and includes Skia ports of
each of the tests.  The idea here being to do fair apples-to-apples
comparisons of the two codebases, or for comparing performance of
Cairo's image backend with the egl backend.


The codebase has been open sourced and is available on github:

  https://github.com/Samsung/caskbench

Caskbench was designed to be installed and used on Tizen, but was
developed and has been tested on Linux.  Building it should be
straightforward; the main problem is getting skia built and installed.

Fortunately, you can skip Skia entirely, by configuring Caskbench
without it:

  $ cmake . -DENABLE_SKIA=OFF

Or, if you're on Ubuntu, you can install Skia from my PPA:

  https://launchpad.net/~bryce/+archive/ubuntu/skia/

(If you're on Debian, you may be able to install the .deb files from
this PPA; click "View package details" then click the arrow next to the
skia package and grab the appropriate .debs.)

Alternatively, you can build and install Skia yourself, but this is
easier said than done!  Skia does not maintain a stable API and neither
do they do releases, so we've developed and tested caskbench against a
snapshot of the tree.  Skia's API has wandered off a ways since then,
and so unfortunately caskbench doesn't currently build with the trunk.
The snapshot I've used is the 'dev/m36_1985' branch


Once it's built, you can run the tests using the image backend:

  $ ./src/caskbench -t image --iterations 100 --size 10

  cairo-bubbles        64     PASS  10  115.60
  skia-bubbles         64     PASS  10  311.93  62.94%
  ...

If you've built Cairo with EGL (--enable-glesv2 --enable-egl), you can
run the tests against it:

  $ ./src/caskbench -t egl

The --help gives a rundown of all the command line options it supports.
See the README for more information.


Bryce


More information about the cairo mailing list