summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qdrawhelper_neon_p.h
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2010-06-30 10:32:01 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2010-07-01 10:37:02 +0200
commite302b2b1e65c616d7ed6adfcf4b252a6741f3053 (patch)
tree3941f4c4dd453723d0ac49f96609afb252894e06 /src/gui/painting/qdrawhelper_neon_p.h
parent91678119c0d5df8064cd27dd9e0f0119942bcbd5 (diff)
Improved performance of 16 bit memrotates using NEON instructions.
Make the memrotate functions a function pointer table so that we can replace it with optimized versions, and implement an optimized NEON version for the 90 and 270 rotations. Measured performance improvement for a 400x400 16-bit pixmap was 17 % for 270 degree rotation and 11 % for 90 degree rotation. Reviewed-by: Trond
Diffstat (limited to 'src/gui/painting/qdrawhelper_neon_p.h')
-rw-r--r--src/gui/painting/qdrawhelper_neon_p.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/painting/qdrawhelper_neon_p.h b/src/gui/painting/qdrawhelper_neon_p.h
index c054a1e162..cd2dbfcb0d 100644
--- a/src/gui/painting/qdrawhelper_neon_p.h
+++ b/src/gui/painting/qdrawhelper_neon_p.h
@@ -120,6 +120,9 @@ void qt_transform_image_rgb16_on_rgb16_neon(uchar *destPixels, int dbpl,
const QTransform &targetRectTransform,
int const_alpha);
+void qt_memrotate90_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
+void qt_memrotate270_16_neon(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl);
+
uint * QT_FASTCALL qt_destFetchRGB16_neon(uint *buffer,
QRasterBuffer *rasterBuffer,
int x, int y, int length);