| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
find . -path '*/3rdparty/*' -prune -o -type f -print | xargs -L1 sed -i -E 's/Copyright(.*) 2013 Digia/Copyright\1 2014 Digia/g'
Manually patched files:
demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h
demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp
src/3rdparty/s60/eiksoftkeyimage.h
tools/qdoc3/test/qt-project.qdocconf
tests/auto/qsharedpointer/nontracked.h
tests/auto/qsharedpointer/nontracked.cpp
Change-Id: I3f9074923b4d6bd4666258ab04f01476cc6e901c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
| |
Change-Id: I52bf8ef0447b701b4ebf7d7d240013a72adb9425
Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: I280c0a575987d1770e354b4948f1d4d767d711ea
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Replace Nokia contact email address with Qt Project website.
- Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: Ie7ba62011752fcb149b99b26317c54f2a0cfa931
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Simple search and replace. This commit doesn't touch 3rd-party files,
nor translations (where the change is not so simple and will be handled
in a separate commit).
Change-Id: I4e48513b8078a44a8cd272326685b25338890148
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the SRGB framebuffer extension in GL is available, we can support
gamma correction of text with a gamma of 2.1. On Mac this is
sufficient for gamma correcting subpixel antialiased text. Gray
antialiasing should not be gamma corrected on Mac.
On Windows, the user can potentially set the gamma value to anything
between 1.0 and 2.2 (or something like that). We support anything
that resembles 1.0 closely enough by pushing the text out without
any correction (like before). We also support anything that resembles
2.1 (the gamma hardcoded in GL's SRGB extension) by turning on the
extension before blending the text. In between the two, we'll use
gray antialiasing to avoid differing too much from the raster engine
(which is our reference in this.)
For gray antialiasing on Windows, we use a constant gamma of 2.3 which
has been determined by experimentation. Since this is close enough to
2.1 we do gamma correction with SRGB extension.
The distance limit of 0.2 is determined by some experimentation.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
The extended radial gradients conform to the radial gradient
specification in HTML 5 canvas.
Task-number: QTBUG-14075
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
| |
Two stops is a fairly common case so we gain quite a bit by special
casing it. Improves performance by 10 % in parcycle benchmark, and
by 90 % in a synthetic benchmark.
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Made the radial gradient fetch func into a template to be able to
optimize the inner loop using SIMD instructions.
Reviewed-by: Benjamin Poulain
|
|
|
|
|
| |
Task-number: QT-4624
Reviewed-by: Kim
|
|
|
|
|
|
|
|
| |
Protect #include of feature-specific header in #ifdef.
Task-number: QTBUG-16652
Reviewed-by: Trust Me
Acked-by: Jani Hautakangas
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
Gives an improvement of around 19.6 % for upscaling a 256x256 pixmap to
480x480 with SmoothPixmapFilter enabled.
Reviewed-by: Olivier Goffart
|
|
|
|
|
|
|
| |
Gives a 36 % performance boost for downscaling a 512x512 pixmap to
480x480 with SmoothPixmapFilter enabled.
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
|
|
| |
We can't use the qdrawhelper_sse.cpp or qdrawhelper_sse3dnow.cpp when
SSE is not run-time detected, as those are compiled with -msse and
MMXEXT is just a subset of SSE. The compiler might choose to use an
instruction not in the subset, causing a crash at run-time.
Task-number: QTBUG-15693
Reviewed-by: Thiago Macieira
|
|
|
|
|
|
|
|
|
|
| |
The coordinates should be modulo the image width and height like for all
the other tiled blend functions.
Covered by perspectives.qps
Task-number: QTBUG-15837
Reviewed-by: Olivier Goffart
|
|
|
|
|
|
|
|
|
|
| |
Blending argb32_pre pixmaps is now ARM SIMD boosted because
it's the most crucial and most used feature in applications.
ARM SIMD boosted blending is 30% faster than non ARM SIMD
boosted blending.
Task-number: QTBUG-4891
Reviewed-by: Samuel
|
|
|
|
|
|
|
| |
With XLC 10, calls to static functions within a template function
need to be fully qualified.
Reviewed-by: Marius Storm-Olsen
|
|
|
|
|
|
|
| |
Scaling down, no rotation, with SSE2.
Specialize for ARGB32 not tiled, so the pixelbound can be simplified
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
when scale down, with no rotations
Process the pixel 4 by 4 and do the interpolation using SSE2
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
Another way to compute the interpolation that does less multiplications.
Small inpact on benchmark
Made-with: Samuel
|
|
|
|
|
|
|
|
|
|
|
| |
Windows 64 does not support MMX with MSVC. This is a problem
with the way SSE is currently used because it rely on previous
vector instructions being available.
This patches fixes that by using the intended functions for
SSE2 on Windows.
Merge-request: 792
Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
|
|
|
|
|
|
| |
move the -1 out of the loop
Reviewed-by: Benjamin Poulain
|
|
|
|
|
|
|
| |
With the recent optimisation in fetchTransformedBilinear, the generic
path is faster than the 'optimized' path
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gives a nice speedup for blitting of small and medium sized
images by using preloading and avoiding function call overhead to
memcpy for each scanline. For larger image widths memcpy becomes more
efficient.
Speedups of up to 40 % for 64 pixel wide images were measured.
For image widths between 2 and 16 the speedup ranges between 12 %
and 28 %.
Task-number: QT-3401
Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Qt does not build on PowerPC when compiling for both x86 and PPC on Mac.
The compiler is invoked only once for both architecture so the defines
are there in order to get the optimized path for x86. Those defines
needs to be removed from the compilation environment when the target
is set to PPC by GCC.
Reviewed-by: Kent Hansen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
master to 4.7
This backport the following commits:
e55b6a3 qdrawhelper: remove code duplication
0d7e683 qdrawhelper: optimize fetchTransformedBilinear
29ef46e Fix compilation with RVCT
6601458 qdrawhelper: Use SSE2 in fetchTransformedBilinear (when scalling up)
398ef0ca Fix nasty copy-paste bug in fetchTransformedBilinear()
d585ece qdrawhelper: fix assert in fetchTransformedBilinear
Reviewed-by: Benjamin Poulain
|
|
|
|
|
|
|
|
|
| |
This reverts commit d2089600ea247b5d6354e8eee4becf40802c4693.
Reverting in order to avoid conflict in the master branch.
We are going to consider backporting the changes to Qt 4.7.1
Reviewed-by: Benjamin Poulain
|
|
|
|
|
|
|
|
|
|
|
| |
The function blend_transformed_bilinear_argb() was checking the blend type
at runtime for each pixel in order to clamp the coordinates. This
code was duplicated in both branch of the function.
This patch factorize the code by doing the clamping in a template
function.
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduce a implementation of qt_memfill32 with the Neon
instructions set from ARMv7.
The loop is unrolled 1 time to get better performance.
This implementation of memfill is 330% faster on the N900.
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
| |
On the benchmark tst_QPainter::compositionModes(), this patches gives
the following improvements:
-300x300:opaque: 390%
-300x300:!opaque: 1085%
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SSSE3 provides two tools to improve the blending speed over SSE2:
-palignr
-byte permutation
The alignement is enforced on src and dst with palignr to always make
aligned access.
The extraction of the alpha mask is done with a byte permutation in
order to save two instructions per cycle.
On Atom, this patch gives between 0% (aligned src) to 10% of
improvement (unaligned 4 and 12 bytes).
On Core 2, this patch gives consistently 8% to 10% of improvement
for every miss-alignment.
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
| |
On Atom, comp_Source is 280% faster with the SSE2 implementation.
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
|
|
|
| |
Implement the composition function for CompositionMode_Plus with SSE2.
The macro MIX() can be replaced by a single instruction add-saturate,
which increase the speed a lot (13 times faster on the blend
benchmark).
Reviewed-by: Olivier Goffart
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some instructions sets were defining partial table of composition
functions. To work around that, qInitDrawhelperAsm() was resetting
the composition function of QPainter::CompositionMode_Destination and
anything above QPainter::CompositionMode_Xor.
This was a problem because it makes it impossible to implement fast
path for those composition mode.
This patch export prototypes for the generic functions of each
composition mode. The specialized implementations now define a complete
table.
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
| |
qt_memconvert's duff's device implementation assumes that count is > 0,
if count is 0 it will still blit eight pixels.
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
The function comp_func_solid_SourceOver_neon() is use extensively by
WebKit via the calls to fillRect() of QPainter().
Implementing the function with Neon provides some performance
improvement (around 175% of the previous speed).
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
| |
This function is used quite a lot by WebKit animations, the SSE2
implementation is twice as fast in those uses cases.
Reviewed-by: Andreas Kling
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a version of comp_func_SourceOver() with SSE2. This gives a
performance boost of 11% on some WebKit animations.
Two new macros were added to simplify the implementation of the
different blending primitives:
BLEND_SOURCE_OVER_ARGB32_SSE2() and
BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2()
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
|
| |
When stretching a subrect of a pixmap we need to clamp the sampling
to the subrect. This was done for the ARGB32_Premultiplied target
format but not for the generic fallback. This patch adapts the
code so that the two code paths are equivalent.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
| |
The commit 2245641baa58125b57faf12496bc472491565498 was not correct
as the x2 (and y2) were not correct on the first line (the value was
1 instead of 0)
Fixes tst_QImage::smoothScale3
Reviewed-by: Samuel Rødal
|
|
|
|
|
| |
Reviewed-by: Eskil
Task: http://bugreports.qt.nokia.com/browse/QTBUG-7596
|
|
|
|
|
|
|
|
|
| |
Since we know that x1 and y1 are between the bounds, and than x2 and
y2 are bigger, we only need to check the upper bound for x2 and y2
This gives 5% speedup on a trace from the QML samegame demo.
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
| |
And apply same optimisation as in 6a9e6f4780f5fc3aaf34f93c85de575f81c91e48
for duplicated code
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
| |
3% faster on a trace from the qml samegame.
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
|
|
| |
This makes for example linear gradient blending on top of RGB16
156 % faster (from 20.4 fps to 52.3 fps in my benchmark).
Task-number: QTBUG-6684
Reviewed-by: Gunnar Sletta
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
:/traces/qmlphoneconcept.trace, iterations: 5, frames: 48, min(ms):
1207, median(ms): 1212, stddev: 0,165153 %, max(fps): 39,768020
After:
traces/qmlphoneconcept.trace, iterations: 3, frames: 48, min(ms): 884,
median(ms): 886, stddev: 0,383097 %, max(fps): 54,298643
Task-number: QTBUG-6684
Reviewed-by: Gunnar Sletta
|