summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-09-3034-34/+34
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (27 commits) Revert "QDeclarativeDebugService: Add bc autotest" to get changes through staging. Doc clarification. Fallback to A8 text rendering on Mac when LCD smoothing is disabled Recreate Qt 4.7 branch QtDeclarative def files on top of changes made to Qt 4.7.1 Autotest that new "import Qt 4.7"s aren't added accidentally Document "import QtQuick 1.0" change Replace "import Qt 4.7" with "import QtQuick 1.0" Add test for Qt 4.7 module Replace all occurances of "Qt 4.7" with "QtQuick 1.0" Correct property type of PathAttribute::value in the docs. Register QtQuick 1.0 module. Remove unused AST node destructors. Fix crash when trying to append a null transform to QDeclarativeItem. Documentation. Documentation fix for Flickable (mark content properties as real, not int). QDeclarativeDebugClient: Fix gcc warning QmlDebugService: Check that there is a receiver before sending messages If a type is registered under several names, share the attached property object QmlViewer: Fix typo in comment QmlViewer: Fix assert on exit (Windows) ...
| * Replace all occurances of "Qt 4.7" with "QtQuick 1.0"Aaron Kennedy2010-09-2934-34/+34
| | | | | | | | | | Task-number: QTBUG-13799 Reviewed-by: Martin Jones
* | SSL: Add benchmark for QSslSocket::systemCaCertificates()Markus Goetz2010-09-284-0/+120
|/ | | | | Task-number: QTBUG-14013 Reviewed-by: Peter Hartmann
* Add the missing license headers to the QString benchmark dataThiago Macieira2010-08-243-1/+44
|
* Unroll the SSSE3 code even more to avoid the need to keep an extra variable ↵Thiago Macieira2010-08-241-35/+53
| | | | | | for inverting the result On 32-bit, we're out of registers already, so this variable ended up in memory
* Don't try to compile the SSE2 and SSSE3 code with compilers that don't ↵Thiago Macieira2010-08-241-3/+11
| | | | support them (e.g. ARM)
* Improve on the SSSE3 with alternate aligning function.Thiago Macieira2010-08-241-38/+101
| | | | Even though this function *only* does aligned loads, it's worse than the other function
* Add the beginnings of a new SSSE3-based aligning algorithmThiago Macieira2010-08-241-1/+83
|
* Small fixupThiago Macieira2010-08-241-1/+1
|
* Update the SSSE3-with-alignment function to use aligned loads.Thiago Macieira2010-08-241-9/+11
| | | | | | This results in no change on the Core-i7, but another 2.6% on the Atom (so it's now 8% better than 4-byte loads and 31% better than current code)
* Add an ucstrncmp that uses SSSE3 with aligning.Thiago Macieira2010-08-241-1/+52
| | | | | | | | | | | The results on i7 are 32% improvement over current code, 13% improvement over 4-byte loads, 6% over the unaligned SSSE3 loads. However, it's about 2.5% slower than pure SSE2 code due to complexity. The results on Atom are 30% improvement over current code, 7% over 4-byte loads, 15% over pure unaligned SSE2 and 9% over unaligned SSSE3.
* Add an SSSE3 version of ucstrncmpThiago Macieira2010-08-241-1/+79
|
* Optimise the tail comparison of ucstrncmpThiago Macieira2010-08-241-2/+36
|
* Add a version of ucstrncmp with SSE2 with aligning.Thiago Macieira2010-08-241-1/+43
| | | | | | | | This is a different technique of aligning. Instead of reading some bytes before the string, we will read some bytes of the string twice. Best results are only 2% improvement over the unaligned SSE2 on a Core-i7.
* Add an SSE2-optimised version of ucstrncmpThiago Macieira2010-08-241-1/+38
| | | | | First results make it 34% faster than current ucstrncmp, 16% faster than the 32-bit version.
* Add the ucstrncmp benchmarksThiago Macieira2010-08-241-0/+136
|
* Update the data generation script to use a non-including .cppThiago Macieira2010-08-244-14/+23
| | | | | This speeds up the writing of algorithms, so I don't have to recompile megabytes of data dumps.
* Major improvements to the comparison functions.Thiago Macieira2010-08-242-188/+1770
| | | | | | Also use the real-world data that I collected. The resulting files are quite large, so I've added to Git only the smallest dump (apparently Teambuilder scanning the environment for "TEAMBUILDER=").
* Add a script to generate real-world data from applicationsThiago Macieira2010-08-241-0/+200
|
* Slightly better version that saves EBX in an XMM registerThiago Macieira2010-08-241-15/+20
|
* Add an SSE4.2 version of the string comparisonThiago Macieira2010-08-242-1/+43
| | | | | It's currently slightly worse than SSE2 with prolog aligning (i.e., it's no good)
* Add an SSSE3 version that uses palignr to align.Thiago Macieira2010-08-242-1/+112
| | | | | | | | | Instead of using a non-SIMD method for aligning, we instead load more bytes from p1 and use the PALIGNR instruction to realign to what we want. The result is that it's bit slower than the non-SIMD comparison, due to the complexity. For strings over 8 QChars wide, it's only slightly worse than the non-SIMD comparison.
* Add an SSE2 comparison with prologThiago Macieira2010-08-241-0/+38
| | | | | | | The prolog tries to align p1 to a multiple of 16, so as to run aligned loads, which are faster. Unfortunately, my tests so far indicate that the prolog ends up taking longer than the benefit of having aligned loads.
* Add a benchmark for SSE2 comparison.Thiago Macieira2010-08-242-0/+28
| | | | | This function uses unaligned loads. I'll try to write one with aligned loads later.
* Add a 4-byte comparison routine.Thiago Macieira2010-08-241-0/+48
| | | | This is a copy of qMemEquals from qstring.cpp
* Add some quick benchmarks for QChar comparisonThiago Macieira2010-08-241-1/+142
|
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-181-0/+81
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Cocoa: revert parts of cc6dc0aeefde881a95f5fea2b26f2f3d7bdc6e15 Cocoa, Autotest: disable autotest that was added a bit premature make error messages consistent Add tests/benchmarks/README qgrayraster: Remove unnecessary indirection in QT_FT_Outline_Decompose Cocoa: add autotest to be more safe regarding child window stacking Fix compilation: QT_NO_TEXTSTREAM exclude QtXmlPatterns from the completeness assessment fix QMAKE_SUBSTITUTES with shadow builds Outline / fill inconsistency in X11 paint engine. Cocoa: parent windows shows on screen when they should be hidden Prevented Xorg crash in qtdemo when running corkboards example.
| * Add tests/benchmarks/READMEMarkus Goetz2010-08-171-0/+81
| | | | | | | | | | | | With some information from the dev mailing list. Reviewed-by: Thiago
* | Implement the general blending of ARGB32_pm with SSSE3Benjamin Poulain2010-08-161-0/+43
|/ | | | | | | | | | | | | | | | | | | 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
* add performance comparisons to qregexp benchmarkArvid Ephraim Picciani2010-08-103-1/+320
| | | | Reviewed-by: hjk
* Implement comp_Source with SSE2 when there is a const alphaBenjamin Poulain2010-08-041-0/+32
| | | | | | On Atom, comp_Source is 280% faster with the SSE2 implementation. Reviewed-by: Andreas Kling
* Merge remote branch 'origin/4.6' into 4.7-from-4.6Rohan McGovern2010-07-291-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/webkit/VERSION src/3rdparty/webkit/WebKit/qt/ChangeLog src/gui/itemviews/qlistview.cpp tests/auto/qlistview/tst_qlistview.cpp tests/auto/qnetworkreply/test/test.pro tests/auto/qsocks5socketengine/qsocks5socketengine.pro
| * Fix Rhys' qmake warningsMarkus Goetz2010-07-221-1/+1
| |
| * Remove files as instructed by Legal department.Jason McDonald2010-07-192-0/+0
| |
| * Remove test cases which cause stack overflowShane Kearns2010-07-151-0/+5
| | | | | | | | | | | | | | | | | | These test cases are not considered reasonable for a small screen device (625 widgets). Patching the QWidget code to use iteration rather than recursion is considered too risky, as the code is performance critical. Task-number: QTBUG-8512 Reviewed-by: Bjoern Erik Nilsen
| * The cmd line arguments have not been delegated properly.Aleksandar Sasha Babic2010-04-271-32/+1
| | | | | | | | | | Task-number: QT-9377 Reviewed-by: Joao
* | Use SSSE3 to convert from RGB888 to RGB32Benjamin Poulain2010-07-263-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Converting from RGB encoded on 24bits to RGB encoded on 32 bits is quite inefficient. This type of conversion is common for some image format. The patch implement the conversion with SSSE3. This reduce by 3 the number of instructions, pushing the bottleneck to memory bandwidth. On Atom N450, the new benchmark is 40% faster for scanlines of 2000 pixels, 30% faster for scanlines of 32 pixels, and 15% slower for small images (3 and 8px). Reviewed-by: Olivier Goffart
* | Add additional QVariant benchmarks.Michael Brasser2010-07-221-0/+45
| |
* | Remove some files as instructed by Legal department.Jason McDonald2010-07-202-0/+0
| | | | | | | | Task-number: QT-3613
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integrationQt Continuous Integration System2010-07-101-0/+41
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (65 commits) Fix QTextDocument::markContentsDirty() Replace 4.6 in all .qdocconf files Resetting bindings through debugger interface Fix crash with invalid role indexes Make test pass and fix docs following removal of SpringFollow Remove autotests of depracted element SmoothedFollow doc improvements Clean up at the end of each test. Improve test reliability. Fix crash Follow -> Behavior Added some documentation to spring animation Fix spring animation Update QtDeclarative def files Fix exponential behavior of QTextCursor::removeSelectedText Optimization: change signal/slot to function call Don't show warning for attempts to load pixmaps asynchronously Remove Image::pixmap property. QML applications should use Update QmlChanges.txt Don't double delete cancelled pixmap cache requests ...
| * | Add styled text layout benchmark.Michael Brasser2010-07-051-0/+41
| | |
* | | Add test and fix style for the SSE2 implementation of ARGB32 conversionBenjamin Poulain2010-07-071-1/+63
|/ / | | | | | | | | | | | | | | The commit beba018814b35c4bd032e6b9fa948e4bac34c59a introduce conversion from ARGB32 to ARGB32_PM with SSE2. This patch add a benchmark for this type of usage, and change the name to use lowercase for SSE2 (style convention).
* | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-07-011-0/+51
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (51 commits) Symbian on Linux: $QTDIR/bin is not necessarily in the path. Updated Symbian def files with new EGL exports. Added another missing EGL stub. Fixed compilation on Symbian. Added missing EGL stub function. Got rid of unused variable compiler warning. QGLWindowSurface support for partial updates via EGL_NOK_swap_region2 Adding func prototypes for EGL_NOK_swap_region2 extension. Check for EGLSurface leak only when paint device is a QGLWidget. Fixed bug in drawTiledPixmap when width of pixmap matches target rect. Update def files for symbian Improved performance of 16 bit memrotates using NEON instructions. Use built-in iconv on Solaris if available Export various symbols needed to make a custom GL graphicssystem. Moc: fix compilation when templated types with multiple arguments are used. Fixes the documentation of QGraphicsEffect::update(). support BGRA textures on SGX Avoid calling time.elapsed() twice in abstract animation Adds slowdownFactor to UnifiedTimer in abstract animation Add the conversion in-place for QPixmap::fromImageReader() on raster. ...
| * \ Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Gunnar Sletta2010-06-301-0/+52
| |\ \
| * | | Added textureUpload benchmark to the GL benchmarksGunnar Sletta2010-06-301-0/+51
| | | |
* | | | Add additional text layout benchmarks.Michael Brasser2010-07-011-7/+51
| | | |
* | | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt into 4.7Martin Jones2010-06-281-0/+52
|\ \ \ \ | | |/ / | |/| | | | | | | | | | Conflicts: src/declarative/qml/qdeclarativeglobalscriptclass.cpp
| * | | Use custom static scopes to improve QML/JavaScript performanceKent Hansen2010-06-251-0/+52
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new internal JS object type, QScriptStaticScopeObject, that enables the JS compiler to make more aggressive optimizations of scoped property access. QScriptStaticScopeObject registers all its properties in a symbol table that the JS compiler has access to. If the compiler finds the property in the symbol table, it will generate the fast index-based op_{get,put}_scoped_var bytecodes, rather than the dynamic (slow) op_resolve and friends. If the compiler _doesn't_ find the property in the symbol table, it infers that it's safe to skip the scope object when later resolving the property, which will also improve performance (see op_resolve_skip bytecode). QScriptStaticScopeObject is only safe to use when all relevant properties are known at JS compile time; that is, when a function that has the static scope object in its scope chain is compiled. It's up to the user of the class (e.g. QtDeclarative) to ensure that this constraint is not violated. The API for constructing QScriptStaticScopeObject instances is not public; it lives in QScriptDeclarativeClass for now, an internal class exported for the purpose of QML. The instance is returned as a QScriptValue and can be manipulated like any other JS object (e.g. by QScriptValue::setProperty()). The other part of this commit utilizes QScriptStaticScopeObject in QtDeclarative in the two major places where it's currently possible: 1) QML disallows adding properties to the Global Object. Furthermore, it's not possible for QML IDs and properties to "shadow" global variables. Hence, a QScriptStaticScopeObject can be used to hold all the standard ECMA properties, and this scope object can come _before_ the QML component in the scope chain. This enables binding expressions and scripts to have optimized (direct) access to e.g. Math.sin. 2) Imported scripts can have their properties (resulting from variable declarations ("var" statements) and function declarations) added to a static scope object. This enables functions in the script to have optimized (direct) access to the script's own properties, as well as to global properties such as Math. With this change, it's no longer possible to delete properties of the Global Object, nor delete properties of an imported script. It's a compromise we make in order to make the optimization safe. Task-number: QTBUG-8576 Reviewed-by: Aaron Kennedy Reviewed-by: Olivier Goffart Reviewed-by: Jedrzej Nowacki
* | | More script benchmarking.Michael Brasser2010-06-243-4/+31
| | |
* | | Script benchmarking.Michael Brasser2010-06-244-4/+157
|/ /