diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2010-06-30 10:32:01 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2010-07-01 10:37:02 +0200 |
commit | e302b2b1e65c616d7ed6adfcf4b252a6741f3053 (patch) | |
tree | 3941f4c4dd453723d0ac49f96609afb252894e06 /src/gui/painting/qdrawhelper_neon_p.h | |
parent | 91678119c0d5df8064cd27dd9e0f0119942bcbd5 (diff) | |
download | qt4-tools-e302b2b1e65c616d7ed6adfcf4b252a6741f3053.tar.gz |
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.h | 3 |
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); |