| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Also add the Neon build flags
|
|
|
|
|
| |
If the multibyte sequence crossed the end of the SSE2 area, then len
would have a wrong value and the data wouldn't be read.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fromLatin1 code is very simple, yet the handwritten assembly
performs better due to the use of post-increments.
The fromUtf8 code has two alternatives. Neon lacks an instruction
similar to SSE2's _mm_movemask_epi8 (PMOVMSKB) which extracts one bit
from each byte and stores it in a register. We used that in the UTF-8
code to detect bytes with the highest bit set. To compensate, we used
two alternatives:
1) AND the comparison result with a vector containing {128, 64, ...,1 }
Do 3 parallel-adds (VPADD.I8), which will make the mask propagate
to the lowest component in the vector.
Trick found in: http://hilbert-space.de/?p=22 (comment 16-17)
2) Extract the two words from the doubleword Neon register and do the
work in ARM assembly.
It looks like the latter version is performing better.
|
| |
|
| |
|
|
|
|
|
| |
This assumes that there are no overlong sequences, no continuation
characters without the leading, no missing continuations and no BOM.
|
| |
|
| |
|
|
|
|
|
| |
If there's an UTF-8 high byte in the first 8 bytes, don't
try to save the latter 8 characters
|
|
|
|
|
| |
This code is 2x faster than the original UTF-8 code and within 35% of
the pure Latin1 code
|
|
|
|
| |
This code is ~1.5x faster than the original UTF-8 code
|
|
|
|
| |
For whatever reason, this code is worse than the stateful code...
|
|
|
|
|
|
| |
Also compare to the Latin1 functions. The UTF-8 algorithm in
Qt 4.7 right now is 109% slower than the unoptimised Latin-1
algo, 120% than the Qt 4.7 SSE2 code
|
|
|
|
|
|
| |
Currently are that the "improved SSE2" version and the SSE4.1 version
are yielding the best results, within 1% of each other. These results
are around 20% better than the Qt 4.7 code.
|
|
|
|
|
|
| |
The more operations there are, the more time it takes. More
importantly, the more variables we touch, the more the compiler may
want to use the stack instead of registers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two special values are added to the measurement of benchmarks: a zero
and a comparison. The "zero" value is to be used when the test incurs
a non-negligible overhead just to run. The benchmark author should add
an "empty" run that measures basically the overhead and set it to
attribute QTest::Zero.
The "zero" value will be subtracted from any benchmark measurements
before reporting (currently the plain logger only). Note that all
benchmark types don't make sense, notably those already measurement
some kind of rate, like frames per second and bytes per second.
The "baseline" value is the comparison (with the "zero"
subtracted"). When the baseline is set, the library will instead
report the ratio between the benchmark and the baseline, in percentage
or a multiple (e.g. "75%" [of the time] or "10.0x" [faster]).
Adding measurements in "robes" left for future improvement.
This feature is not reviewed and will be reverted later.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Reviewed-by: Trust Me
|
| |
|
|
|
|
| |
Reviewed-by: Markus Goetz
|
|
|
|
| |
Reviewed-by: Friedemann Kleint
|
|\
| |
| |
| |
| | |
Conflicts:
src/gui/image/qpnghandler.cpp
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
scm.dev.nokia.troll.no:qt/qt-integration into master-integration
* 'qt-master-from-4.7' of scm.dev.nokia.troll.no:qt/qt-integration:
Add flag for forcibly propagating backing store alpha to framebuffer
Fixed unmatched quotes in s60installs.pro
Added setSwitchPolicy to MeeGo graphicssystem helper API.
Add /q switch to QMAKE_DEL_FILE command in symbian
|
| | |\ |
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Add flag for forcibly propagating backing store alpha to framebuffer
Fixed unmatched quotes in s60installs.pro
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously, the following rules applies to the creation and blitting of
the Symbian raster backing store:
1. Creation of backing store with an alpha channel:
Backing store has an alpha channel only if !QWidget::isOpaque.
2. Pre-filling of backing store prior to paint loop:
Backing store is filled with transparent pixels if
!QWidget::isOpaque.
3. Blitting of backing store:
CGraphicsContext::EDrawModeWriteAlpha is used (meaning that backing
store alpha values are propagated into the frame buffer), if
QWidget::isOpaque.
In order for the direct camera viewfinder to be visible on DSA devices,
alpha=0 must be written into the framebuffer in the region where the
viewfinder will be displayed. This requires a backing store with an alpha
channel (1), use of CGraphicsContext::EDrawModeWriteAlpha (3), but not
pre-filling of the entire backing store (2).
This patch adds a new enum value, QWExtra::BlitWriteAlpha, which can be
used by camera backends to achieve the desired behaviour.
Task-number: QTMOBILITY-1278
Reviewed-by: Jani Hautakangas
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: Miikka Heikkinen
|
| | | |\ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Added setSwitchPolicy to MeeGo graphicssystem helper API.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This lets the application control whether or not automatic switching
should be used, and also to completely disable switching if desired.
Reviewed-by: Armin Berres
|