[Pixman] [ANNOUNCE] pixman release 0.18.0 now available [fixed formatting]
siarhei.siamashka at gmail.com
Thu Apr 1 06:32:03 PDT 2010
On Thursday 01 April 2010, Koen Kooi wrote:
> On 01-04-10 12:16, Søren Sandmann wrote:
> > Results from a number of benchmarks in the cairo performance test
> > suite on x86 and ARM.
> Which ARM core was used? I'm curious if it uses the NEON stuff or not.
It was Cortex-A8 with NEON.
The difference in relative performance gains for x86 and ARM in these tests
can be explained by different ratios of CPU/memory speed, sizes of caches, and
many other factors.
For example, fast path cache is improving x86 performance a lot more than ARM
(just because x86 had a much longer list of SSE2 fast path functions plus MMX
fallbacks, those took a noticeable time to linearly search through). For this
reason I was not very enthusiastic about adding more fast path table entries
for much less frequently used BGR formats. In pixman 0.16.x every new fast
path table entry used to improve one particular composite operation a lot, but
was introducing a tiny slowdown for lots of other operations. Now this
scalability issue got fixed by the fast path cache and more fast path
functions can be added without having to worry about such problem anymore.
Radial gradients are still slow for both x86 and ARM, but ARM has an extra
penalty for 'double' -> 'pixman_fixed_48_16_t' conversion. This levels down
relative overall performance improvements on the tests which trigger these
Also standard cairo benchmark tests do not cover some of the operations which
have been improved in pixman 0.18.0. These are:
* unantialised text rendering (terminus font in console)
* nearest scaling (zoomed page view with lots of images or tiled backgrounds
in firefox browser)
Some of the new NEON fast path functions are also not covered cairo-perf-trace
benchmarks, but I observed them by profiling some real applications. Some of
the composite operations which do not have the needed NEON (or SSE2/MMX) fast
path are yet to be discovered.
It would be a good idea to gradually add the missing traces to the cairo test
set and extend its scope to cover more practical use cases.
More information about the Pixman