[Pixman] performance of bilinear_interpolation

Maksim Lin maks at manichord.com
Wed Sep 11 00:07:52 PDT 2013


I'm working on finding out the cause of poor drawing performance of
Firefox on android:

The html causing the problem is essentially doing a image translation:

Profiling with the firefox profiler gave me this:

and that seems to point pretty much to
bits_image_fetch_bilinear_affine() being the bottle-neck.

Now I realise this has been kind-of asked about previously, back in
feb 2011, in the context of speeding up scaling in cairo:

and in that response Siarhei pointed out about his attached patch,
that it doesn't make much sense to only improve bilinear_interpolation
as it would only make things approx 2x faster than C but in my current
situation I would be very glad to even have that 2x improvement in
performance, at least to start with.

Unfortunately I havn't been able to get Siarhei's patch to compile in
the pixman shipped in firefox (from current moz-central hg repo), with
gcc complaining about it not liking thumb mode instructions:
to test out if it really would speed up my test case.

I also realise that the scaling issue was addressed by a set of
patches that Siarhei submitted and that then went into pixman and then
on into firefox but I wanted to ask is something simliar is possible
to now also speed up bits_image_fetch_bilinear_affine with Neon for
arm too?

And sorry in advance if I have got any of the pieces of this mixed up,
I'm pretty new to all this.


More information about the Pixman mailing list