[Pixman] [PATCH/RFC 0/2] Faster 90/180/270 degrees rotation

Siarhei Siamashka siarhei.siamashka at gmail.com
Fri Jul 30 11:21:08 PDT 2010


The following patches introduce a new fast path flag and initial
C fast path code for faster 90/180/270 degrees rotation.

It is not intended to be committed as is (the flags related part will
have to be updated after the pending patches from Soeren reach git master).

Also looks like it is a bit difficult to make a universal C implementation
which would work optimally on all targets (due do varying cache line sizes,
hardware prefetch algorithms, TLB properties, etc.). And what is better
for one architecture, seems to sometimes degrade performance for the other.
This particular code seems to work fine on Intel Core2 (almost reaching
performance of a simple nonrotated copy), but does not look very good on
Intel Atom and ARM Cortex-A8.

In any case, SIMD optimizations using transpose instructions is the right
thing to do if best performance is needed. I have ARM NEON patches for this
and will submit them a bit later.

Comments are very much welcome.

Siarhei Siamashka (2):
  New FAST_PATH_SIMPLE_ROTATE_TRANSFORM flag
  C fast path for a simple 90/180/270 degrees rotation.

 pixman/pixman-fast-path.c |  295 +++++++++++++++++++++++++++++++++++++++++++++
 pixman/pixman-image.c     |   47 ++++++-
 pixman/pixman-private.h   |    1 +
 3 files changed, 336 insertions(+), 7 deletions(-)



More information about the Pixman mailing list