summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qdrawhelper.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2010-06-30 08:32:01 (GMT)
committerSamuel Rødal <samuel.rodal@nokia.com>2010-07-01 08:37:02 (GMT)
commite302b2b1e65c616d7ed6adfcf4b252a6741f3053 (patch)
tree3941f4c4dd453723d0ac49f96609afb252894e06 /src/gui/painting/qdrawhelper.cpp
parent91678119c0d5df8064cd27dd9e0f0119942bcbd5 (diff)
downloadQt-e302b2b1e65c616d7ed6adfcf4b252a6741f3053.zip
Qt-e302b2b1e65c616d7ed6adfcf4b252a6741f3053.tar.gz
Qt-e302b2b1e65c616d7ed6adfcf4b252a6741f3053.tar.bz2
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.cpp')
-rw-r--r--src/gui/painting/qdrawhelper.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 5727b3c..d7f7dc3 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -7901,6 +7901,9 @@ void qInitDrawhelperAsm()
functionForModeSolid_C[QPainter::CompositionMode_SourceOver] = comp_func_solid_SourceOver_neon;
destFetchProc[QImage::Format_RGB16] = qt_destFetchRGB16_neon;
destStoreProc[QImage::Format_RGB16] = qt_destStoreRGB16_neon;
+
+ qMemRotateFunctions[QImage::Format_RGB16][0] = qt_memrotate90_16_neon;
+ qMemRotateFunctions[QImage::Format_RGB16][2] = qt_memrotate270_16_neon;
}
#endif