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(-) _______________________________________________ Pixman mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pixman
