summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qdrawhelper.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2010-09-17 19:53:43 (GMT)
committerSamuel Rødal <samuel.rodal@nokia.com>2011-04-13 08:17:05 (GMT)
commit26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d (patch)
tree4ce9f5239cfe62c3052acbe8a82a692843d719c4 /src/gui/painting/qdrawhelper.cpp
parent44dd7ef86a3970694a4f8fd9516575c0533a336e (diff)
downloadQt-26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d.zip
Qt-26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d.tar.gz
Qt-26bd3dccdee8c6a8f1cf9d254a2a6be7d403aa8d.tar.bz2
Optimized radial gradient fetch using SSE 2.
On an i7 this improves performance by 22 % in parcycle, 107 % in default svgviewer example, and 283 % in a synthetic radial gradient benchmark. Reviewed-by: Andreas Kling
Diffstat (limited to 'src/gui/painting/qdrawhelper.cpp')
-rw-r--r--src/gui/painting/qdrawhelper.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 535313e..a676fe9 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -7734,6 +7734,11 @@ void qInitDrawhelperAsm()
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_sse2;
qBlendFunctions[QImage::Format_RGB32][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_ARGB32_Premultiplied] = qt_blend_argb32_on_argb32_sse2;
+
+ extern const uint * QT_FASTCALL qt_fetch_radial_gradient_sse2(uint *buffer, const Operator *op, const QSpanData *data,
+ int y, int x, int length);
+
+ qt_fetch_radial_gradient = qt_fetch_radial_gradient_sse2;
}
#ifdef QT_HAVE_SSSE3