aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix build after moving Qt Quick Shapes benchmarksHEADdevEskil Abrahamsen Blomfeldt2025-10-281-6/+6
| | | | | | | | | This amends 06d78c2e0127df7ddb76dd816da192bbb05fe3f5. The change renamed files but did not update the CMakeLists.txt. Change-Id: I33478e7527507ca1da9e04ee3b56a80436888214 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Some tweaks to new shapes/vectorimage benchmarks/auto/animations/quickEskil Abrahamsen Blomfeldt2025-10-2414-24/+94
| | | | | | | | | | | | | | | | | | | | This tweaks a few different things for the new Qt Quick Shapes and Qt Quick VectorImage benchmarks. 1. Increases the counts to work better with release mode builds, since they will otherwise be too fast and cap out at 60 fps, leaving us with less useful data. 2. Moves benchmarks from auto/quick.shapes into auto/animations/quick.shapes to make them execute automatically. 3. Added a simple rotation animation to said benchmarks to make them a bit more interesting. 4. Updated the benchmarks.md docs to include information on how to add new tests to the daily runs, since this was not obvious. Task-number: QTBUG-140186 Change-Id: Id0daba6a9eafefcc66b8dcfd614ab49a08b13657 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add creation benchmarks for VectorImageEskil Abrahamsen Blomfeldt2025-10-205-0/+311
| | | | | | Task-number: QTBUG-140186 Change-Id: I907961518837983ad387a6132967bb74e76130fe Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add benchmarks for Qt Quick ShapesEskil Abrahamsen Blomfeldt2025-10-2013-0/+414
| | | | | | Task-number: QTBUG-140186 Change-Id: I34ff2663c54e70d9046c4ffe5b67728f5c9dc544 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix "ignoring return value" warningMitch Curtis2025-09-251-5/+8
| | | | | | | | | | | | | | | | | | The warning was: [...]/qmlbench/src/resultrecorder.cpp: In static member function ‘static void ResultRecorder::finish()’: [...]/qmlbench/src/resultrecorder.cpp:243:24: warning: ignoring return value of ‘virtual bool QFile::open(QIODeviceBase::OpenMode)’, declared with attribute ‘nodiscard’ [-Wunused-result] 243 | outputFile.open(QIODevice::WriteOnly | QIODevice::Append); | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from [...]/qt-bisect-release/qtbase/include/QtCore/qfile.h:1, from [...]/qt-bisect-release/qtbase/include/QtCore/QFile:1, from [...]/qmlbench/src/resultrecorder.cpp:29: [...]/qt-bisect/qtbase/src/corelib/io/qfile.h:290:32: note: declared here 290 | QFILE_MAYBE_NODISCARD bool open(OpenMode flags) override; | ^~~~ Change-Id: Ia0ec8c3600323ca12b16b45166aa6f0fd1e234ff Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Move WeirdShape component definition in shapespawner benchmarkJuho Lääkkö2024-08-193-81/+29
| | | | | | | | | Qmlbench handles all .qml ending files as benchmark. That causes unnecessary failure when WeirdShape component was defined in own qml file. Change-Id: I87d95e903b29714dfdc6acb5ce3aa909086d7493 Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
* Improve Vulkan backend support handling when requested by userPasi Petäjäjärvi2023-10-111-3/+10
| | | | | | | | | | | | | Previous usage of defines fails as those are available on compile time when Vulkan SDK is installed and cause QT_QPA_PLATFORM=vkkhrdisplay to bet set for desktop also. Since dd3840a1a201318c8f089dc7d34ec38f64e05b4e we can get platform plugin name before creating actual QGuiApplication instance. For older Qt versions provide hint message for embedded for possible need to set env variable. Also check if Qt was build with Vulkan support and if not inform user and exit application. Change-Id: I781f7e4e048dd8417aba14ecc2cb919b1b9ae136 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix typo in property name and accessPasi Petäjäjärvi2023-08-153-3/+3
| | | | | Change-Id: I3900e9b9164222af90590018d478020cb66f6bc2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add screen refreshrate as recordable parameter for testrunPasi Petäjäjärvi2023-08-154-3/+14
| | | | | Change-Id: I68db0b1720f21fec9492e9417258101024baf7ff Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add option to run tests with Vulkan backendPasi Petäjäjärvi2023-08-153-40/+97
| | | | | Change-Id: Iec76a086657ad8cda88c4590f68f55b0636bf958 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix usage of QtGraphicalEffects in manual benchmarksPasi Petäjäjärvi2022-12-121-1/+1
| | | | | Change-Id: I0bc2d5e17d443b4569001a92795f1fcd34a18c76 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix FontLoader testPasi Petäjäjärvi2022-09-151-11/+0
| | | | | | | FontLoader.name is read-only in Qt6 Change-Id: I47c37419d55ca0721c8f7bb3f7fd22d76fa96b99 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove duplicate line from verbose outputPasi Petäjäjärvi2022-09-151-1/+0
| | | | | Change-Id: Idac775aec2f698a03c9390178c58fe1b3b45da85 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix recording correct display resolution for json result on embeddedPasi Petäjäjärvi2022-09-152-8/+16
| | | | | Change-Id: I7600b23043a38e881d90de6eb980fef54e77e764 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix usage of QtGraphicalEffects in testsPasi Petäjäjärvi2022-09-153-2/+3
| | | | | Change-Id: I2c6e2f71463a80ebf47ad2553ad9df8b0e2f29f3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix compositesingleton.qml benchmarkUlf Hermann2022-01-251-1/+2
| | | | | | | | | | If we're going to add QML modules with qt_add_resources (which is a bad idea, to be fixed separately), we should at least add complete QML modules. Change-Id: If029718c5c427dda4c62baeffed628869ef2d347 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Use a resource file for benchmarks, and add some Android goodies and fixesVille Voutilainen2022-01-04207-0/+4864
| | | | | | Task-number: QTBUG-94148 Change-Id: I7cc0b1ade676c4f7f963915315c00e317582e56f Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
* Fix build without Qt Quick 3DMitch Curtis2021-05-121-0/+6
| | | | | | Change-Id: I5e181231080bbd39077b3d8b2f2d6ff8cdbae8b2 Reviewed-by: Daniel Smith <Daniel.Smith@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Make sure default surface format supports Qt Quick 3DEskil Abrahamsen Blomfeldt2021-04-282-5/+8
| | | | | | | | | | | We need to pick an appropriate OpenGL version in order to support all the QQ3D benchmarks. This also means we have to move the setup for the surface format until after initializing the GUI application, but having this before is not actually needed in our case anyway. Change-Id: I98ad3399b0a00aba7252f4c8b646a073c8ec1584 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove the INSTALLS directives from the build systemUlf Hermann2021-03-251-3/+0
| | | | | | | Forcing an installation into /root is ... less than friendly. Change-Id: I2ea451a1faea88a04dadfd68dec48ffb56601aac Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove compat directoryUlf Hermann2021-03-255-1643/+0
| | | | | | | No one needs to build this with Qt 5.0 or 5.1 anymore. Change-Id: I1707781a7a1fc4c009bfb24be49691ad488a5d1f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix disabling vsync for frame-count shellEskil Abrahamsen Blomfeldt2021-03-181-12/+13
| | | | | | | | | | | | | | | The frame-count shell depends on disabling vsync to be able to render as many frames as it can during 20 seconds. But the logic was inverted in the condition that checked for the --shell parameter, so the frame-count shell would never be detected and the swap interval would never be set to 0. This patch also updates the logic to take into consideration that frame-count is the default now, so it will default to disabling vsync. Change-Id: I9d866a7fddfa46266ba1c8245b84e8389e00b154 Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
* Various c++ fixesJonas Karlsson2021-03-022-7/+7
| | | | | | | | | | | - Add override - Use range based for loops - Constify Task-Id: QTBUG-78695 Change-Id: I2084e7266447e95c3e84270d69b7ece07c593d84 Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix qml deprecation warningJonas Karlsson2021-02-251-1/+1
| | | | | | Task-Id: QTBUG-78695 Change-Id: I6f76603940a45bc760052c9ca94b1807aa11e4e3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Bail on invalid shell optionJonas Karlsson2021-02-251-2/+6
| | | | | | Task-Id: QTBUG-78695 Change-Id: Ib0896b4e7b401521eef38e1b27901160757256fa Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Default to Basic controls style if not already setMitch Curtis2020-11-301-0/+4
| | | | | | | | | | | | | | | In Qt 6, the Default style was renamed to Basic, and the style that is used by default now depends on which platform the application is run on. Previously the Default (now Basic) style was used by default. So, restore the Basic style as the default. This ensures consistent results should the default ever change again. Task-number: QTBUG-88672 Change-Id: If96dd9cccd5fd05256221991bfacb4ae7bd3a1c1 Reviewed-by: Daniel Smith <Daniel.Smith@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add CMakeListsDaniel Smith2020-11-261-0/+36
| | | | | | | Add support for building qmlbench with CMake Change-Id: I85fd6ec6ef39beed8a8e067e121ddbca29b50bad Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix random number generationLaszlo Agocs2020-11-201-1/+2
| | | | | | | | | | | | The table was filled with the same one number, leading to significantly different visual results compared to 5.15, because tests relying on random number generation for item positions placed all 1000 or so items to the exact same position in the scene. Amends 01a08c32dade506bcecb54e29f477d1ac1954bd2 Change-Id: I817de76b7142b68751b801ca9891d2afc7234acf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Adapt to qt6 changesDaniel Smith2020-09-302-2/+4
| | | | | | | | | Use qmlRegisterAnonymousType since qmlRegisterType with 0 params is deprecated. Use QRandomGenerator instead of qrand() Change-Id: Ic25c445fa8a9e08147093ea40f1b87f4067ef8c1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix QString - QByteArray mismatch that is now an errorLaszlo Agocs2020-06-301-1/+1
| | | | | Change-Id: I97482601d942db565ef760177a8df09c2c4edd87 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix QDateTime build errorMitch Curtis2020-05-181-1/+1
| | | | | | | Its constructor needs a QDate and QTime, not just a QDate. Change-Id: Id61995f84ecf7fd83645fcaac114c376001068ee Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* resultrecorder: Remove stale textRobin Burchell2018-01-181-1/+0
| | | | | | | | | | When we were bucketing results to try get better stability, this used to give information about that. This was removed in f2ef76ce444db733fad3f6806f0019419d97b62c, but this text remained. Remove it to avoid confusion. Change-Id: I6a175807d920c3fe750b08b592bc412200c9a002 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Use math functions from std namespaceKari Oikarinen2018-01-083-3/+3
| | | | | | | | | <cmath> needs to declare the math functions in the std namespace. Optionally it can also put them in the global namespace, but for example the standard library for QNX 6.6 does not do so. Change-Id: Ie4d15d419d7a93c1c04d2b6982dba740d522740a Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Try to get a better random spread for tests with static count 20kEskil Abrahamsen Blomfeldt2017-11-151-1/+1
| | | | | | | | | | | | | | | | Some tests, where the static count was set to 20000 would collect all items along a diagonal line. It seems as if the reason for this was that QML would evaluate all Xs first and then all Ys, and since the static count was an exact multiple of the size of the pregenerated array, the multiplier for X and Y would be the same, so they would gather along the diagonal. By setting the size of the array we make this unlikely (tests with static count 20002 will still encounter the issue, but we have none of those.) Change-Id: I2d1df3c17f270a185e73e53d4ec9e2b56ddc799d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add internal random generatorEskil Abrahamsen Blomfeldt2017-10-314-2/+109
| | | | | | | | | | | | | | | | | | | | | | | | In Qt 5.10 we introduce a new QRandomGenerator which is now used by Math.random(), and there are signs that this is significantly slower than qrand() which was used before. So much so, that it is visible in many of the qmlbench benchmarks. Note that this is a theory based on local runs and analysis of the graphs and still needs to be proven. Regardless, the qmlbench benchmarks are not intended to be benchmarking Math.random(), it is just used to ensure the positions tested are random. To eliminate that as a possible cause for regressions, we instead introduce a simple internal random function which just cycles through a pregenerated array. Note that this will reduce performance for all affected tests on all branches of Qt, but it will hopefully reduce the gap between Qt 5.9.0 and Qt 5.10. Task-number: QTBUG-63922 Change-Id: Ib19c11323f38b23f9705e0d77a52a8a0f1157ac3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add --timeout optionEskil Abrahamsen Blomfeldt2017-06-292-1/+10
| | | | | | | | | This allows you to override the default timeout of 10 minutes for cases where one of the benchmarks is exceedingly slow, but you still would like to collect the data for the others. Change-Id: Ifcfc304a21e643d938e53bfd36ddaf6df6a8d515 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* qmlbench: Fix incorrect counting in frame-count shellRobin Burchell2017-06-281-0/+1
| | | | | | | | | | | | We should not count the warmup iterations in the overall number of produced items. This seems wrong, and causes some confusion when troubleshooting a broken test. Note that a side effect of this change is that *all* results will now drop by a value of 5 after this change is introduced. Change-Id: Ib5e8a55411b663180f9d1a1a2a1df651bf0e4dc5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove "SUB: " prefix from loggingRobin Burchell2017-05-251-4/+4
| | | | | | | | This doesn't really have much point now that the split process mode has stabilized Change-Id: Ia88935b427d56ede40448d76bda7dbb261016827 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Add install targets to work with boot2qt in Creator easierRobin Burchell2017-05-251-0/+3
| | | | | Change-Id: I00620d034c4d640e6f4a23ac1c890eec159067ad Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Fix partial reads of stdout/stderrRobin Burchell2017-05-251-14/+32
| | | | | | | | This had only a cosmetic effect of printing subprocess output with extra linebreaks, but since it's not hard to fix, let's do that. Change-Id: I5a81be5c29df84a5632fe2599ac31f35ae7e2f0f Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Don't use a Timer to record the result and end the testRobin Burchell2017-05-151-18/+16
| | | | | | | | | This approach is valid, but it's essentially a coin toss as to whether onTChanged or the Timer fires first, so some tests may still tick a little too long with the Timer based approach. Change-Id: Ic0d53b60cea7cabf87cd9bd8ad13b8d8bc8727b1 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* benchmarkrunner: Delete on finished(), rather than dtorRobin Burchell2017-05-151-1/+2
| | | | | | | | | | We call quit(), but some tests may be executing QML for a bit longer, not respecting the quit flag. Tear down the engine so that the quit happens sooner. This fixes e.g. some of the animation tests running a bit longer after measurement is over. Change-Id: Ie05aff3d962d537c7f5d05a53f2de12522e9035d Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Add a V8Benchmark type to QmlBench importRobin Burchell2017-05-063-0/+93
| | | | | | | | | This is going to be used to run v8-bench benchmarks using qmlbench as a harness. This reverts commit 156cdf3b2ec213843f13240c160bcb25144a12c2. Change-Id: Ieae04fd9fd968ac7bc419767afbf235b67242779 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Adaptations to run v8-bench.js in qmlbenchRobin Burchell2017-05-062-13/+84
| | | | | | | | We need to prevent writes to global properties. We also stub out the BenchmarkSuite running stuff, as we will be doing that ourselves. Change-Id: I647556f3d7a4e044db68754ce1f0eb0e35874536 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add initial version of v8-benchRobin Burchell2017-05-061-0/+11591
| | | | | | | Imported from qtdeclarative/aa19268705f1a4f81ac6dcb519e217d40cefa633. Change-Id: Ieb96d2ae70dca043cd15e5a622bef3082cdd6ffd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add TestModel for benchmarks of model property accessRobin Burchell2017-05-044-2/+241
| | | | | | | | | | | | And at the same time, introduce benchmarks for reading properties from a TestModel instance. This doesn't give us full coverage of model/view -- I'd ideally like to see row additions/removals/moves on an otherwise static ListView for instance -- but that can be done separately. Change-Id: I45e25d89eb76bbe046d7e0c2c1a23f13b6b92fab Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Shell_TotalFramesWithStaticCount: Stop running 't' ticker when reporting resultsRobin Burchell2017-05-021-1/+11
| | | | | | | | | Otherwise, due to queued signal handling, we may start processing another (useless) run when 't' ticks before the queued signal to quit kicks in. Change-Id: I52cd0311e82363cec2f60ca19a85ff653a9b68fb Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Add an option to destroy the view between runsRobin Burchell2017-04-264-9/+31
| | | | | | | | Useful to determine if there's something funky going on in caching somewhere Change-Id: I359eabec3b740eff602898f71a035af169800d38 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* Revert frame-count countDown changesRobin Burchell2017-04-251-3/+1
| | | | | | | | | | | This reverts commit 16c6b173d5ad7e7d946a7d8dbae8fc8eda673bb2. This reverts commit 0ecfdc41ebfabe50c816c6877192281bbf426cc8. These are complete bunk after all. We recreate the shell each iteration, so this has no impact at all. Change-Id: I1693a1d4acbc18cbe0427422b2196398c83556da Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* prefix properties with object idGunnar Sletta2017-04-251-1/+1
| | | | | Change-Id: Iaa99be3ef1b82aa62a2a54aa9ae55d4a71c50b8b Reviewed-by: Robin Burchell <robin.burchell@crimson.no>