Commit graph

7310 commits

Author SHA1 Message Date
Ivailo Monev
4e5220dede drop BLAKE2b and BLAKE2s in favour of BLAKE3
unfortunetly the reference C implementation
(https://github.com/oconnor663/blake3_reference_impl_c) was slower on
static hash benchmark, faster on incremental hashing tho. while BLAKE2b
and BLAKE2s were faster than SHA-2 on incremental hashing BLAKE3 is
faster on both static and incremental hashing (compared to SHA-256),
benchmark results:

********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00281 msecs per iteration (total: 563, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00334 msecs per iteration (total: 669, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00468 msecs per iteration (total: 936, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00366 msecs per iteration (total: 732, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE3)":
     0.00219 msecs per iteration (total: 438, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000660 msecs per iteration (total: 132, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00112 msecs per iteration (total: 224, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000935 msecs per iteration (total: 187, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00108 msecs per iteration (total: 216, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE3)":
     0.000775 msecs per iteration (total: 155, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000590 msecs per iteration (total: 118, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00135 msecs per iteration (total: 271, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000870 msecs per iteration (total: 174, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.00101 msecs per iteration (total: 203, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE3)":
     0.000655 msecs per iteration (total: 131, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000575 msecs per iteration (total: 115, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00138 msecs per iteration (total: 276, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000855 msecs per iteration (total: 171, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE3)":
     0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00217 msecs per iteration (total: 434, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00428 msecs per iteration (total: 857, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00319 msecs per iteration (total: 638, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE3":
     0.00164 msecs per iteration (total: 329, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00408 msecs per iteration (total: 816, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00308 msecs per iteration (total: 616, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE3":
     0.00137 msecs per iteration (total: 274, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 21:15:42 +02:00
Ivailo Monev
c7a0ad8a5e QCryptographicHash benchmark review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 20:13:10 +02:00
Ivailo Monev
5bc2639e82 replace blake2b_explicit_memset() and blake2s_explicit_memset_impl with memset() for minor performance gain
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 07:07:25 +02:00
Ivailo Monev
0a6f72df2b keyless BLAKE2b and BLAKE2s hash sums optimization
minor performance gain, benchmark results:

********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00278 msecs per iteration (total: 556, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000640 msecs per iteration (total: 128, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000605 msecs per iteration (total: 121, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000560 msecs per iteration (total: 112, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00332 msecs per iteration (total: 664, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00109 msecs per iteration (total: 218, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00136 msecs per iteration (total: 272, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00473 msecs per iteration (total: 946, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000945 msecs per iteration (total: 189, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000860 msecs per iteration (total: 172, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00106 msecs per iteration (total: 213, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.00100 msecs per iteration (total: 201, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2b)":
     0.00279 msecs per iteration (total: 558, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2b)":
     0.000735 msecs per iteration (total: 147, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2b)":
     0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2b)":
     0.000675 msecs per iteration (total: 135, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2s)":
     0.00335 msecs per iteration (total: 671, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2s)":
     0.000665 msecs per iteration (total: 133, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2s)":
     0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2s)":
     0.000600 msecs per iteration (total: 120, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00154 msecs per iteration (total: 309, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00420 msecs per iteration (total: 841, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00313 msecs per iteration (total: 627, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2b":
     0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2s":
     0.00218 msecs per iteration (total: 437, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00149 msecs per iteration (total: 299, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00411 msecs per iteration (total: 822, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00307 msecs per iteration (total: 615, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2s":
     0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
RESULT   : tst_qcryptographichash::algorithms():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha1":
     0.00207 msecs per iteration (total: 415, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha256":
     0.00413 msecs per iteration (total: 827, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha512":
     0.00306 msecs per iteration (total: 613, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2b":
     0.00157 msecs per iteration (total: 315, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2s":
     0.00209 msecs per iteration (total: 419, iterations: 200000)
PASS  : tst_qcryptographichash::algorithms()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 07:02:39 +02:00
Ivailo Monev
75589486a3 add support for BLAKE2b and BLAKE2s hash sums
benchmark results:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_qcryptographichash::initTestCase()
RESULT   : tst_qcryptographichash::append():"10 (Md5)":
     0.00275 msecs per iteration (total: 551, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Md5)":
     0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Md5)":
     0.000570 msecs per iteration (total: 114, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Md5)":
     0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha1)":
     0.00327 msecs per iteration (total: 655, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha1)":
     0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha1)":
     0.00131 msecs per iteration (total: 262, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha1)":
     0.00133 msecs per iteration (total: 267, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha256)":
     0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha256)":
     0.000895 msecs per iteration (total: 179, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha256)":
     0.000850 msecs per iteration (total: 170, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha256)":
     0.000825 msecs per iteration (total: 165, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (Sha512)":
     0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (Sha512)":
     0.00105 msecs per iteration (total: 211, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (Sha512)":
     0.000995 msecs per iteration (total: 199, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (Sha512)":
     0.000980 msecs per iteration (total: 196, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2b)":
     0.00278 msecs per iteration (total: 557, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2b)":
     0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2b)":
     0.000690 msecs per iteration (total: 138, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2b)":
     0.000650 msecs per iteration (total: 130, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"10 (BLAKE2s)":
     0.00335 msecs per iteration (total: 670, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"100 (BLAKE2s)":
     0.000645 msecs per iteration (total: 129, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"250 (BLAKE2s)":
     0.000600 msecs per iteration (total: 120, iterations: 200000)
RESULT   : tst_qcryptographichash::append():"500 (BLAKE2s)":
     0.000580 msecs per iteration (total: 116, iterations: 200000)
PASS  : tst_qcryptographichash::append()
RESULT   : tst_qcryptographichash::append_once():"Md5":
     0.00154 msecs per iteration (total: 308, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha1":
     0.00211 msecs per iteration (total: 422, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha256":
     0.00415 msecs per iteration (total: 831, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"Sha512":
     0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2b":
     0.00164 msecs per iteration (total: 328, iterations: 200000)
RESULT   : tst_qcryptographichash::append_once():"BLAKE2s":
     0.00217 msecs per iteration (total: 435, iterations: 200000)
PASS  : tst_qcryptographichash::append_once()
RESULT   : tst_qcryptographichash::statichash():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha1":
     0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha256":
     0.00409 msecs per iteration (total: 818, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"Sha512":
     0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::statichash():"BLAKE2s":
     0.00211 msecs per iteration (total: 422, iterations: 200000)
PASS  : tst_qcryptographichash::statichash()
RESULT   : tst_qcryptographichash::algorithms():"Md5":
     0.00148 msecs per iteration (total: 297, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha1":
     0.00206 msecs per iteration (total: 412, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha256":
     0.00409 msecs per iteration (total: 819, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"Sha512":
     0.00307 msecs per iteration (total: 614, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2b":
     0.00157 msecs per iteration (total: 314, iterations: 200000)
RESULT   : tst_qcryptographichash::algorithms():"BLAKE2s":
     0.00212 msecs per iteration (total: 424, iterations: 200000)
PASS  : tst_qcryptographichash::algorithms()
PASS  : tst_qcryptographichash::cleanupTestCase()
Totals: 6 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 06:22:46 +02:00
Ivailo Monev
bfee83b9ab benchmark all QCryptographicHash algorithms
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 04:48:35 +02:00
Ivailo Monev
7bc2539ea4 do not mark the end of QCryptographicHash as unreachable in case invalid method was passed
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-11 04:28:43 +02:00
Ivailo Monev
6d1e5f56a6 lock before accessing global QML plugins map
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 19:31:48 +02:00
Ivailo Monev
45dad6d585 use typedef instead of struct for global declarative components map
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 19:21:16 +02:00
Ivailo Monev
7a5275274c use QStdVector<T> for user events list and de-couple its mutex
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 19:04:53 +02:00
Ivailo Monev
0cedb69854 replace hardcoded Qt::MouseButton values with enums
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 18:56:19 +02:00
Ivailo Monev
2de3cc02e2 deal with TODO related to QGraphicsItem data store
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 18:46:47 +02:00
Ivailo Monev
25aa050192 remove redundant global static used by QNetworkInterface
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 18:18:02 +02:00
Ivailo Monev
426c95cd47 implement QNetworkInterface via getifaddrs() and one ioctl() for the MAC only
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 16:14:00 +02:00
Ivailo Monev
cebeb86d53 remove redundant QNetworkInterface::humanReadableName() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 04:40:39 +02:00
Ivailo Monev
de4457c54a build fix for hosts without SIOCGIFHWADDR ioctl()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-07 02:53:26 +02:00
Ivailo Monev
bfc5f89161 add QClipboard test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-06 21:18:31 +02:00
Ivailo Monev
00a15e3ff5 add QAnimationGroup test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-06 21:07:13 +02:00
Ivailo Monev
45b4071517 do not copy socket address structure in qt_socket_getPortAndAddress() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 15:59:20 +02:00
Ivailo Monev
284f61d138 add QNetworkInterface test
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 06:37:09 +02:00
Ivailo Monev
95c899efc6 fill hardware address of QNetworkInterface when QT_HAVE_GETIFADDRS is defined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 06:29:54 +02:00
Ivailo Monev
d6bb73a786 QNetworkInterfacePrivate::makeHwAddress() optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-05 06:26:52 +02:00
Ivailo Monev
1b3c209010 build fix for the case when compiler mode is C++17 or newer
documented at https://en.cppreference.com/w/cpp/regex/basic_regex, good
thing JSC regex are not used for anything relevant, Kate uses some in its
indendation scripts and that's about it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 23:32:40 +02:00
Ivailo Monev
be6bde63ea QWorkspace class dismissed
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 19:36:29 +02:00
Ivailo Monev
351b6f320c large and transparent image samples for QImageReader benchmark
Katie image format is 6x faster than png on transparent images, note
the size of the images. benchmark result:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageReader::initTestCase()
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     0.450 msecs per iteration (total: 225, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     5.148 msecs per iteration (total: 2,574, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     2.176 msecs per iteration (total: 1,088, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     1.82 msecs per iteration (total: 911, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     19.46 msecs per iteration (total: 9,733, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     12.34 msecs per iteration (total: 6,171, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     0.586 msecs per iteration (total: 293, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     2.728 msecs per iteration (total: 1,364, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     2.418 msecs per iteration (total: 1,209, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     10.79 msecs per iteration (total: 5,399, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     8.084 msecs per iteration (total: 4,042, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     75.654 msecs per iteration (total: 37,827, iterations: 500)
RESULT   : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     63.850 msecs per iteration (total: 31,925, iterations: 500)
PASS  : tst_QImageReader::readImage()
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
     1.94 msecs per iteration (total: 974, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
     6.598 msecs per iteration (total: 3,299, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
     3.594 msecs per iteration (total: 1,797, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
     3.332 msecs per iteration (total: 1,666, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
     20.360 msecs per iteration (total: 10,180, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
     13.29 msecs per iteration (total: 6,645, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
     1.44 msecs per iteration (total: 720, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
     3.668 msecs per iteration (total: 1,834, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
     3.364 msecs per iteration (total: 1,682, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
     9.324 msecs per iteration (total: 4,662, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
     9.622 msecs per iteration (total: 4,811, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
     77.180 msecs per iteration (total: 38,590, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
     65.346 msecs per iteration (total: 32,673, iterations: 500)
PASS  : tst_QImageReader::setScaledSize()
PASS  : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 18:37:47 +02:00
Ivailo Monev
c8b66a0e4b implement quality option for Katie image format and document how it works
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-04 16:59:08 +02:00
Ivailo Monev
5e0f6e6c39 correct definition for conditional QTabWidget feature
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 20:47:02 +02:00
Ivailo Monev
ba0858bee2 fix possible crash when session manager property is empty list
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 20:03:11 +02:00
Ivailo Monev
5f175986d8 do not detach ID variable in QSessionManager constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 19:20:59 +02:00
Ivailo Monev
a902fc21f2 translations update [ci skip]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 16:54:49 +02:00
Ivailo Monev
43ecafb11c reduce the size of private QImageReader and QImageWriter data pointers by not storing the error string
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 16:24:46 +02:00
Ivailo Monev
8038460673 filter duplicate MIME types from plugins with multiple keys in QImageReader::supportedMimeTypes() and QImageWriter::supportedMimeTypes()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 14:35:27 +02:00
Ivailo Monev
418c46fa84 do not compute hash after QCryptographicHash::reset() unless data is added
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 04:48:53 +02:00
Ivailo Monev
f114257be6 new QImageReader::formatForMimeType() and QImageWriter::formatForMimeType() methods
fixes pasting of images from clipboard for some image formats

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 04:18:14 +02:00
Ivailo Monev
d6327b9615 add note in which version QImageReader::supportedMimeTypes(), QImageWriter::defaultImageFormat() and QImageWriter::supportedMimeTypes() appeared
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 03:12:26 +02:00
Ivailo Monev
f702899bf1 new required virtual method to get MIME types for image plugins
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-03 02:47:28 +02:00
Ivailo Monev
52e2f86666 incremental hashing optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-02 18:44:30 +02:00
Ivailo Monev
f5a2844467 brief Katie image format documentation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-02 16:01:16 +02:00
Ivailo Monev
853d13fb3a oops, copy-pasta
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 23:51:23 +02:00
Ivailo Monev
ac19025007 move variable closer to the scope it is used in QPdfBaseEnginePrivate::openPrintDevice()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 23:13:35 +02:00
Ivailo Monev
05316f51d1 QT_NO_CUPS option does not require QT_NO_PRINTER
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 23:13:16 +02:00
Ivailo Monev
215eed0c88 enable QPrintDialog print button only if printer is available
fixes crash in case no printer is available and print button is clicked

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 22:56:54 +02:00
Ivailo Monev
c266f6d1e9 drop support for printing to file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 21:05:04 +02:00
Ivailo Monev
391503c8be do not return current PPD from QCUPSSupport::setCurrentPrinter()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 13:53:09 +02:00
Ivailo Monev
5f61f29f3c use QImage::Format_ARGB32_Premultiplied image format for raster pixmaps unless pixel type is bitmap
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 13:02:03 +02:00
Ivailo Monev
73619d7898 do not build the Katie image format handler if QT_NO_IMAGEFORMAT_KAT is defined
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 02:40:55 +02:00
Ivailo Monev
dbb384c991 typo
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 01:12:26 +02:00
Ivailo Monev
f81903f64d Katie image format optimization
from 2x faster to 3x compared to png, benchmark results bellow:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageReader::initTestCase()
RESULT   : tst_QImageReader::readImage():"bench.kat":
     0.452 msecs per iteration (total: 226, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.pbm":
     0.026 msecs per iteration (total: 13, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.png":
     1.82 msecs per iteration (total: 912, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.ppm":
     0.588 msecs per iteration (total: 294, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.svg":
     10.80 msecs per iteration (total: 5,400, iterations: 500)
RESULT   : tst_QImageReader::readImage():"bench.xpm":
     8.172 msecs per iteration (total: 4,086, iterations: 500)
PASS  : tst_QImageReader::readImage()
RESULT   : tst_QImageReader::setScaledSize():"bench.kat":
     1.95 msecs per iteration (total: 977, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.pbm":
     1.34 msecs per iteration (total: 671, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.png":
     3.328 msecs per iteration (total: 1,664, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.ppm":
     1.44 msecs per iteration (total: 720, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.svg":
     9.304 msecs per iteration (total: 4,652, iterations: 500)
RESULT   : tst_QImageReader::setScaledSize():"bench.xpm":
     9.730 msecs per iteration (total: 4,865, iterations: 500)
PASS  : tst_QImageReader::setScaledSize()
PASS  : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********

********* Start testing of tst_QImageWriter *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS  : tst_QImageWriter::initTestCase()
RESULT   : tst_QImageWriter::writeImage():"kat":
     2.428 msecs per iteration (total: 1,214, iterations: 500)
RESULT   : tst_QImageWriter::writeImage():"png":
     7.798 msecs per iteration (total: 3,899, iterations: 500)
RESULT   : tst_QImageWriter::writeImage():"ppm":
     6.954 msecs per iteration (total: 3,477, iterations: 500)
PASS  : tst_QImageWriter::writeImage()
PASS  : tst_QImageWriter::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageWriter *********

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-01 01:11:30 +02:00
Ivailo Monev
3337c33a86 simplify raster pixmap creation from image
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-28 21:43:02 +02:00
Ivailo Monev
d36bee65a4 unroll qt_memfill<T,T>() to 8 operations per-loop when possible
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-02-28 21:41:30 +02:00