<div dir="ltr">Hi Bryce,<div><br></div><div>I have found this suite a bit earlier than you announced it and I think that you have done a great job! Some improvements are needed, like Chris said, the random number generator should be improved, but I like the tool and especially the fact it compares with Skia.</div><div><br></div><div>I'm currently developing a 2d vector graphics engine that is using a JIT compiler to generate inner loops and I'm also preparing a microbenchmark tool that will check performance of various combinations of the pipeline - source style, blend, rasterizer, etc... I'm gonna release the library and tooling soon, but from my early observations I can conclude that cairo image backend is really slow compared to others, the only exception are aligned fills, but these are fast in all the libraries available.</div><div><br></div><div>Cheers,</div><div>Petr</div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 26, 2014 at 2:54 AM, Bryce Harrington <span dir="ltr"><<a href="mailto:bryce@osg.samsung.com" target="_blank">bryce@osg.samsung.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At Samsung one of the projects I've been working on is a benchmark test<br>
for comparing the performance of Cairo and Skia with EGL + MSAA, called<br>
Caskbench. I presented about this testing at LinuxConf US in Chicago<br>
last month.<br>
<br>
This is no where near as comprehensive or meticulous as Cairo's<br>
performance test suite, but it runs quickly, and includes Skia ports of<br>
each of the tests. The idea here being to do fair apples-to-apples<br>
comparisons of the two codebases, or for comparing performance of<br>
Cairo's image backend with the egl backend.<br>
<br>
<br>
The codebase has been open sourced and is available on github:<br>
<br>
<a href="https://github.com/Samsung/caskbench" target="_blank">https://github.com/Samsung/caskbench</a><br>
<br>
Caskbench was designed to be installed and used on Tizen, but was<br>
developed and has been tested on Linux. Building it should be<br>
straightforward; the main problem is getting skia built and installed.<br>
<br>
Fortunately, you can skip Skia entirely, by configuring Caskbench<br>
without it:<br>
<br>
$ cmake . -DENABLE_SKIA=OFF<br>
<br>
Or, if you're on Ubuntu, you can install Skia from my PPA:<br>
<br>
<a href="https://launchpad.net/~bryce/+archive/ubuntu/skia/" target="_blank">https://launchpad.net/~bryce/+archive/ubuntu/skia/</a><br>
<br>
(If you're on Debian, you may be able to install the .deb files from<br>
this PPA; click "View package details" then click the arrow next to the<br>
skia package and grab the appropriate .debs.)<br>
<br>
Alternatively, you can build and install Skia yourself, but this is<br>
easier said than done! Skia does not maintain a stable API and neither<br>
do they do releases, so we've developed and tested caskbench against a<br>
snapshot of the tree. Skia's API has wandered off a ways since then,<br>
and so unfortunately caskbench doesn't currently build with the trunk.<br>
The snapshot I've used is the 'dev/m36_1985' branch<br>
<br>
<br>
Once it's built, you can run the tests using the image backend:<br>
<br>
$ ./src/caskbench -t image --iterations 100 --size 10<br>
<br>
cairo-bubbles 64 PASS 10 115.60<br>
skia-bubbles 64 PASS 10 311.93 62.94%<br>
...<br>
<br>
If you've built Cairo with EGL (--enable-glesv2 --enable-egl), you can<br>
run the tests against it:<br>
<br>
$ ./src/caskbench -t egl<br>
<br>
The --help gives a rundown of all the command line options it supports.<br>
See the README for more information.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Bryce<br>
--<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br>
</font></span></blockquote></div><br></div></div>