[Pixman] performance of bilinear_interpolation

Siarhei Siamashka siarhei.siamashka at gmail.com
Wed Sep 25 16:20:38 PDT 2013

On Wed, 11 Sep 2013 17:07:52 +1000
Maksim Lin <maks at manichord.com> wrote:

> Hi,
> I'm working on finding out the cause of poor drawing performance of
> Firefox on android:
> https://bugzilla.mozilla.org/show_bug.cgi?id=911882
> The html causing the problem is essentially doing a image translation:
> http://manichord.com/opensign/ffdebug/ffscroll.html

When this web page is zoomed in Firefox, we get bilinear scaling for
x8r8g8b8 -> a8r8g8b8 (SRC operator, PAD repeat). And there is simply no
NEON or SSE2 optimized fast path in the currently released versions of
pixman (or in the Mozilla's internal pixman copy), which could do this
scaling while also setting the alpha channel to 0xFF at the same time.

A universal general solution would be to extend the SSSE3 bilinear
fetch iterator in pixman git repository to handle all repeat types
and also add NEON and SSE2 bilinear fetch iterators.

But first it would be a good idea to record a cairo trace for this
use case.

Best regards,
Siarhei Siamashka

More information about the Pixman mailing list