[cairo] Slow down when running newer Cairo on ARM with NEON

Joshua Watt jpewhacker at gmail.com
Tue Apr 16 17:38:49 UTC 2019


I recently upgrade from Cairo 1.12 to 1.14 (yes, I know these are old
versions), and after doing so noticed a approximately 70% reduction in
performance when rendering scenes that make heavy use of image scaling.
I did some digging and tracking the offending commit down to the
commit: f337342c8 ("V6 image: Use convolution filters for sample
reconstruction when downscaling")

It appears that this commit is attempting to improve the quality of
downscaled images by implementing new interpolation algorithms in cairo
instead of using the pixman algorithms. My theory is that this is much
slower on ARM processes that have NEON support because pixman has
special implementations of the interpolations algorithms written to
take advantage of NEON, while the new cairo implementations do not.

Does anyone have any ideas on what a good path forward would be to
restore the ARM+NEON performance? I am planning on trying to reproduce
this with a newer version of cairo to see if it is still a problem, but
I suspect it will be based on the lack of any significant changes in
this code to either cairo or pixman.

Joshua Watt <JPEWhacker at gmail.com>

More information about the cairo mailing list