[Pixman] [PATCH 0/3] Iterator for separable scaling

Søren Sandmann Pedersen soren.sandmann at gmail.com
Mon Jul 29 02:03:26 PDT 2013

The following patches add a new standard-C (no assembly) iterator for
separable bilinear scaling. It's not easy to give a single value for
the speedup since it depends on the scaling ratio. Instead there is a
new scaling-bench program that tries all scaling factors 0.1, ...,
10.0 and reports the time per operation and time per destination

A graph of the speed-up as reported by the program is here:


Blue is time-per-pixel before the patch and red is after. The graph
shows the expected substantial speed-up for large upscalings, but also
a slowdown for downscalings when the ratio is less than ~0.6.

If we want to avoid that slowdown, I suppose we could add new fast
path flags to distinguish downscalings with ratios less than 0.6, but
such downscaling doesn't look great with a bilinear filter, and the
slowdown isn't very big, so I'm inclined to just ignore it.

I verified that the separable scaling doesn't ever beat the current
non-separable SSE2 or MMX scalers.


More information about the Pixman mailing list