<div dir="ltr"><div>I'm doing SW rendering only and this is reason why I decided to go with JIT. I have really good results so far, but I didn't put much material online - you can check out <a href="http://blend2d.com">blend2d.com</a>, but the site is rather simple at the moment (although the images published there were rendered by Blend through node.js).</div><div><br></div><div>The microbenchmarking tool I developed targets more libraries than caskbench - I have implemented Cairo, Qt, and Gdi+ so far; and I would like to add Skia and Direct2D as well, but I'm not sure if Skia is worth due to build problems. The tool also generates images like caskbench so it's easy to verify that the tests are doing the same thing.</div><div><br></div><div>Well, after Blend is released you can check it out and see if it's possible to include any optimization/feature in Cairo. I designed Blend very carefully and I'm definitely gonna write notes about it.</div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 2, 2014 at 12:33 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"><span class="">On Wed, Oct 01, 2014 at 12:59:58PM +0200, Petr Kobalíček wrote:<br>
> Hi Bryce,<br>
><br>
> I have found this suite a bit earlier than you announced it and I think<br>
> that you have done a great job! Some improvements are needed, like Chris<br>
> said, the random number generator should be improved, but I like the tool<br>
> and especially the fact it compares with Skia.<br>
<br>
</span>You'll be happy to hear that the rng got swapped out yesterday in favor<br>
of a static one provided by Cedric Bail.<br>
<span class=""><br>
> I'm currently developing a 2d vector graphics engine that is using a JIT<br>
> compiler to generate inner loops and I'm also preparing a microbenchmark<br>
> tool that will check performance of various combinations of the pipeline -<br>
> source style, blend, rasterizer, etc... I'm gonna release the library and<br>
> tooling soon, but from my early observations I can conclude that cairo<br>
> image backend is really slow compared to others, the only exception are<br>
> aligned fills, but these are fast in all the libraries available.<br>
<br>
</span>If yours is using software rendering and generates equivalent quality as<br>
cairo, I'd be interested in hearing if there are algorithms or other<br>
techniques in your graphics engine that could be proposed for inclusion<br>
in Cairo.<br>
<div class="HOEnZb"><div class="h5"><br>
> Cheers,<br>
> Petr<br>
><br>
> On Fri, Sep 26, 2014 at 2:54 AM, Bryce Harrington <<a href="mailto:bryce@osg.samsung.com">bryce@osg.samsung.com</a>><br>
> wrote:<br>
><br>
> > 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>
> ><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>
> ><br>
</div></div></blockquote></div><br></div></div>