[qt/qt/qtbase]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtbase Pushed by mirror-service into branch '6.12'. Changed from db57b83afe0077480340a69918feaab8760d8564 to 43cb234206ff83ecb5b46d753505910d59f42835 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 22199c7c5d950b8559dedb7a419e2ceae3c0fa21 by Qt Cherry-pick Bot (on behalf of Arkadiusz Zarębski) on 13/08/2026 at 09:47.. ohos: skip resizeAsync() when the window size is unchanged An application that moves its own window - handling mouse events and calling QWidget::move() - lagged visibly behind the pointer. Every mouse move event crosses from the JS thread to the Qt thread, and the resulting geometry update is applied back in the JS thread, so each event pays a full round trip between the threads. A redundant resize on that path is expensive. QOhosWindowProxy::setSize() called resizeAsync() unconditionally and blocked the Qt thread until the returned JS promise settled, and calls that do not change the size are common - the size is re-submitted on every window state sync, whether or not it actually changed. Measured while dragging a fixed-size window: - the resizeAsync() promise took 62 ms on average to settle - setSize() blocked the Qt thread for 68 ms on average, the difference being the hand-off back to the Qt thread Read the window rect in the JS thread and skip resizeAsync() when the requested size already matches it. Dragging a window now follows the pointer closely, which is a clearly noticeable improvement over the lag that was plainly visible before. Task-number: QTBUG-148993 Change-Id: I5be1b19bc75f035b5fb4ffd19934b2f9380d27bb Reviewed-by: SanthoshKumar Selvaraj <[email protected]> (cherry picked from commit dc4908f85e18aee01ca860a082bcb4a8fadf1fc8) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/22199c7c5d950b8559dedb7a419e2ceae3c0fa21 Git commit fee6b64022986f66ffd5731d4fdc5e87822760ca by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QOpenGlWidget on Ubuntu tst_QOpenGlWidget is no longer flaky or failing on Ubuntu. Pick-to: 6.11 6.8 Change-Id: I1876466f8aefc143b590c3d3d5c467d34949bdd2 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit bd7909f090bdae15ea1159e528f6401d593cb38a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/fee6b64022986f66ffd5731d4fdc5e87822760ca Git commit f77aa0358a4e081cb2321dcc9bd79bce4bde7327 by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_Gestures::panelStacksBehindParent, panelPropagation tst_Gestures::panelStacksBehindParent and panelPropagation are not flaking or failing anymore on Ubuntu 22.04 Unblacklist them. Pick-to: 6.11 6.8 Change-Id: I52ee55feb790705117932ff66d444c51287980ed Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit b481512fd1e4413d13d6a4bc55cbb97ab8aef936) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f77aa0358a4e081cb2321dcc9bd79bce4bde7327 Git commit d4a594e2c650f09ccd6abb6c1810a5962df04785 by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QTouchEvent::multiPointRawEventTranslationOnTouchPad tst_QTouchEvent::multiPointRawEventTranslationOnTouchPad is no longer flaky on windows 11. Unblacklist it. Fixes: QTBUG-101519 Pick-to: 6.11 6.8 Change-Id: I5cecaf88e47f45536e948c32c6e5a987159ec5ce Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 6f6b03d68d23a69c3454249a8ba45d5bdd8f214d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/d4a594e2c650f09ccd6abb6c1810a5962df04785 Git commit 947f71c0aff948e66e5dde4e46b2ff99161df639 by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QGraphicsAnchorLayout::layoutDirection on Ubuntu 22.04 tst_QGraphicsAnchorLayout::layoutDirection is no longer flaking/failing on Ubuntu 22.04 Unblacklist it. Pick-to: 6.11 6.8 Change-Id: Id190f0658ab916d24bbbe46f8e3647f65a249115 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit b4a3d752277802c4a1f676de0d6570f5453570ba) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/947f71c0aff948e66e5dde4e46b2ff99161df639 Git commit 0f80b7fe4824307d0f356927be8548bfe85e74a4 by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QDnsLookup::lookupRoot on Linux tst_QDnsLookup::lookupRoot is no longer failing/flaking on Linux. Unblacklist it. Task-number: QTQAINFRA-7130 Pick-to: 6.11 6.8 Change-Id: I4d78aa0c0f110d754f4e122615f218f076db3b5b Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 006032c51bff6cd6da50ff724081a1d871c16f8e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/0f80b7fe4824307d0f356927be8548bfe85e74a4 Git commit 63add9f65e36c0002d52321d8c6252e939a0154a by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QGraphicsView::resizeAnchor on RHEL tst_QGraphicsView::resizeAnchor is no longer failing/flaking on RHEL. Unblacklist it. Pick-to: 6.11 6.8 Change-Id: I2e9541255882538a1f4f690d93c8dfd520215c95 Reviewed-by: Dimitrios Apostolou <[email protected]> (cherry picked from commit 388b76f40afa334f72606a4af41498ae9678a956) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/63add9f65e36c0002d52321d8c6252e939a0154a Git commit 51f24372a3149b13873812417126186b612bebcc by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 09:47.. Unblacklist tst_QScroller::overshoot_segments on Windows 11 tst_QScroller::overshoot_segments was meant to be blacklisted for Windows 10, but also was for Windows 11. Blacklist it only for Windows 10. Task-number: QTBUG-134105 Pick-to: 6.11 6.8 Change-Id: I1b84ef8e339f9f7d15bc4ca3320e3ff744eec2d0 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 5654e74cd68e9e8f0907c6a24a5b6da1ad96f07a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/51f24372a3149b13873812417126186b612bebcc Git commit bd96dc982c22da80c1a250407dce2993e3211d34 by Qt Cherry-pick Bot (on behalf of Alexei Cazacov) on 13/08/2026 at 09:47.. Doc: Housekeeping: Remove an empty .qdoc file Pick-to: 6.11 6.8 Change-Id: I24673343f06b2832c16a86e46c0377322d9b8788 Reviewed-by: Jerome Pasion <[email protected]> (cherry picked from commit 41ab0b4bf93717ee4f6bd6637af123f1427ea976) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/bd96dc982c22da80c1a250407dce2993e3211d34 Git commit c5b376e955549b5c8c0673515a6aeca63248d213 by Qt Cherry-pick Bot (on behalf of Alexei Cazacov) on 13/08/2026 at 09:47.. Doc: Housekeeping: Fix typos in qdoc formatting Pick-to: 6.11 6.8 Change-Id: Ic6e12048d25e3a8b556f17453dc25503a972c480 Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit ff94fa3050e16d4effc2db69cbf001feac7ea7af) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/c5b376e955549b5c8c0673515a6aeca63248d213 Git commit 93a6a7be20e7487d72f35b3c22ab4c8964640f6d by Qt Cherry-pick Bot (on behalf of Alexei Cazacov) on 13/08/2026 at 09:47.. Doc: Housekeeping: Fix the \macos macro spelling This commit corrects the \macos macro spelling. Macros are case-sensitive, and the correct spelling is \macos, not \macOS. Change-Id: I6430146cfa140cf0973df72638d1534599ae2e25 Reviewed-by: Frederic Lefebvre <[email protected]> (cherry picked from commit afdddad1cb6bfa48c060402fc17fdc504245a5f1) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/93a6a7be20e7487d72f35b3c22ab4c8964640f6d Git commit 6cbcd53fe4fdda90be1194557a7bb46b82036c44 by Qt Cherry-pick Bot (on behalf of Christian Ehrlicher) on 13/08/2026 at 09:47.. Tests/QWidget: remove unneeded QTest:qWait() calls Use QTRY_foo for the check after the wait instead. Pick-to: 6.11 Change-Id: I13c90489bd0071c03ec97e1ace8063f4246d8ec0 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 04369f0b32f6472b903265fb1084d1cdb1feb49e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/6cbcd53fe4fdda90be1194557a7bb46b82036c44 Git commit 10b6f5668e3baaa1fe2c0bbf292fe2f31b4e6c4a by Qt Cherry-pick Bot (on behalf of Christian Ehrlicher) on 13/08/2026 at 09:47.. Tests/QLineEdit: remove unused code NO_PIXMAP_TESTS was always defined since the last 20 years. Un-define it results in compiler errors which are not easily fixable so remove the bit-rot completely. Pick-to: 6.11 Change-Id: I3e7c3eb629fd0dc76874fe1821f1f9c2f93b0f07 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit afbe0cfda62f968e08f1a087cae2c965705d2ae9) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/10b6f5668e3baaa1fe2c0bbf292fe2f31b4e6c4a Git commit 03ffdae20983a5f6004df8048d654ac1fbc5eb1f by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 13:58.. Unblacklist tst_QListView::styleOptionViewItem on Wayland tst_QListview::styleOptionViewItem is no longer failing/flaking on Wayland. Unblacklist it. Pick-to: 6.11 6.8 Change-Id: I79b1345fd98542662edba7ccaa98cff68b613810 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> (cherry picked from commit f4810abab4da45e7b96243026a3d398892b7c27d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/03ffdae20983a5f6004df8048d654ac1fbc5eb1f Git commit 9ae55e9f02f5ba9f27d7ce675eacec07bff009ef by Qt Cherry-pick Bot (on behalf of Mitch Curtis) on 13/08/2026 at 13:58.. QDialogButtonBox: fix build with -DFEATURE_shortcut=OFF QPlatformTheme::standardButtonShortcut() only exists when the shortcut feature is enabled, so QDialogButtonBox::standardButtonShortcut() fails to compile without it. Guard the declaration and definition the same way, matching the already-guarded call site in createButton(). Amends 3989b6a01102721bbc9dd92db70411900d58f085. Change-Id: Ifa0117729bfbdbee2282bc3992bae00ffa392449 Reviewed-by: Volker Hilsheimer <[email protected]> (cherry picked from commit b17ad6c0f43bd0307c2ee508b868c5422dfecdac) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/9ae55e9f02f5ba9f27d7ce675eacec07bff009ef Git commit f959af4de70fc9dfca438abef2a0bdd19380463a by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 13:58.. Unblacklist tst_QTreeWidget::setChildIndicatorPolicy on Linux tst_QTreeWidget::setChildIndicatorPolicy is no longer flaky/failing on Linux. Unblacklist it. Pick-to: 6.11 6.8 Change-Id: I01c73de58782c8fb3954e2df325e3070c7e2699d Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> (cherry picked from commit 71295e40baa4bc937788db6b233698e69aae8b0f) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f959af4de70fc9dfca438abef2a0bdd19380463a Git commit 1f3b17deb5c8c0a475d1464a9c9cd8e9a04b182c by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 13:58.. Unblacklist tst_QBackingStore::flush on Wayland Tst_QBackingStore::flush is not longer failing/flaking on Wayland. Unblacklist it. Pick-to: 6.11 6.8 Change-Id: I2190be4177d2ada2721d4f355ae5d01fe33f7385 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> (cherry picked from commit 134d7536682cebd248c7ed186ea86eb168cd7450) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/1f3b17deb5c8c0a475d1464a9c9cd8e9a04b182c Git commit 7f6b1dffa7338a6b331e7e10af4d6ef09aa08357 by Qt Cherry-pick Bot (on behalf of Frédéric Lefebvre) on 13/08/2026 at 13:58.. Unblacklist tst_QPrinter::testPrintPreviewDialog for Wayland Tst_QPrinter::testPrintPreviewDialog is no longer flaking/failing for Wayland. Unblacklist it. Pick-to: 6.11 6.8 Change-Id: Ibc8367d9e0fa90830b960f88137af21f166e43b3 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> (cherry picked from commit 4b717cd5ac8673d3d721bbab9326c233fd6bc481) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/7f6b1dffa7338a6b331e7e10af4d6ef09aa08357 Git commit 48bca5967c16d906fbfb4804db8a29ddb7c6078a by Qt Cherry-pick Bot (on behalf of SanthoshKumar Selvaraj) on 13/08/2026 at 13:58.. Fix precision loss in QTouchEventSequence::mapToScreen() mapToScreen() called QWindow::mapToGlobal(const QPoint &), which rounds the result to integer device-independent pixels. On screens with a fractional high-DPI scale factor, this discarded sub-pixel value before the position was scaled to native pixels, causing touch events to occur on the incorrect coordinate. Change the return type to QPointF and use the QPointF overload of QWindow::mapToGlobal() instead, matching the QPointF that QMutableEventPoint::setGlobalPosition() expects. Change-Id: I7c9a0aa8f303cd1ec3c4b6a9650a3253b05770cf Reviewed-by: Liang Qi <[email protected]> (cherry picked from commit 84a0977d65e7b51b5e383d620f06fb87765cf05e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/48bca5967c16d906fbfb4804db8a29ddb7c6078a Git commit a2b71c27fb82f46e7ac8ae3934623b974c7ac19d by Qt Cherry-pick Bot (on behalf of Mitch Curtis) on 13/08/2026 at 13:58.. doc snippets: fix gui build with -no-feature-shortcut src_gui_kernel_qshortcut.cpp and src_gui_kernel_qshortcutmap.cpp were unconditional sources, and src_gui_kernel_qkeysequence.cpp was only gated on QT_FEATURE_widgets. All three use QShortcut/QKeySequence directly and fail to compile without the shortcut feature. Amends 4b022c0fe08d31e39a074d12833a29cf02c67040. ef56b88fc856056bcd5975336f00a3b97dc31e72 fixed some other features, but not this one. Pick-to: 6.11 Change-Id: I2eab6bdeb8ec46f6b7557a10f2ca148fc75320a9 Reviewed-by: Volker Hilsheimer <[email protected]> (cherry picked from commit 2c87ffabf419a201e150766cf58ae9eaf55210f1) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/a2b71c27fb82f46e7ac8ae3934623b974c7ac19d Git commit 34412f3751d13b4bcd2ac12ca7b8dc9748b6db48 by Qt Cherry-pick Bot (on behalf of Mitch Curtis) on 13/08/2026 at 13:58.. doc snippets: fix gui_snippets build with -no-feature-shortcut textdocument-blocks, textdocument-frames, textdocument-listitems, textdocument-listitemstyles, textdocument-selections, textdocument-tables, and textdocument-printing all call QAction::setShortcut() and/or use QKeySequence directly, both of which require the shortcut feature. Guard them accordingly. Also drop the accidental duplicate listing of textdocument-tables/mainwindow.cpp. Amends 1042c917c36c95cf2650e26ed4234ccb752fb54f. Pick-to: 6.11 Change-Id: I9eb3b0868c36d354f898ac237ec600486e27fff9 Reviewed-by: Volker Hilsheimer <[email protected]> (cherry picked from commit b56a07ebc2b0bcd5d3864661aaa8c6d879f1027d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/34412f3751d13b4bcd2ac12ca7b8dc9748b6db48 Git commit e98a087cddba95065de5bee4dc08b9e343e1b4c8 by Qt Cherry-pick Bot (on behalf of Mitch Curtis) on 13/08/2026 at 13:58.. doc snippets: fix widgets_snippets build with -no-feature-shortcut dockwidgets, qlistview-dnd/mainwindow, qlistwidget-dnd, qtablewidget-resizing, qtablewidget-using, qtreewidget-using, qtreewidgetitemiterator-using, and whatsthis all call QAction::setShortcut(), which requires the shortcut feature. Amends 67086b4149da86427666967d11f3c0f33330b5b3. Pick-to: 6.11 Change-Id: I6fefbc70030517c61132d3323a14e83810f956f9 Reviewed-by: Volker Hilsheimer <[email protected]> (cherry picked from commit 2f303bc50fbc89eeca69d39a49b5e6baa84d4620) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e98a087cddba95065de5bee4dc08b9e343e1b4c8 Git commit 9ebe2c63ee50f81b3a187990158ebe61a5365d2d by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. linuxfb: Move misplaced security annotation in qlinuxfbdrmscreen Change-Id: I32e74ee8d359f32fd75e7bb760008a10997448a7 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit a9ce967788ddf0d8baddf99a37a1b850cf687607) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/9ebe2c63ee50f81b3a187990158ebe61a5365d2d Git commit 58ce6ce4d49a5ca822f2169914840c1dce6690ed by Qt Cherry-pick Bot (on behalf of Joerg Bornemann) on 13/08/2026 at 13:58.. CMake: Auto-detect HarmonyOS toolchain file from OHOS_SDK_ROOT ...in user projects. Before, it was necessary to set QT_CHAINLOAD_TOOLCHAIN_FILE in addition to OHOS_SDK_ROOT if the toolchain file stored within qt.toolchain.cmake doesn't exist, which is most probably the case for an installer-provided Qt. Now, we try to find the toolchain file within OHOS_SDK_ROOT like we do on Android. Also, we allow setting OHOS_SDK_ROOT from the environment like ANDROID_SDK_ROOT for Android. Fixes: QTBUG-148404 Change-Id: I23415024bbc926f2aa3085bf47eaa30966bd0e7f Reviewed-by: Alexandru Croitor <[email protected]> (cherry picked from commit 1fa14b47af27abf173a318e04541551b3d0060b0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/58ce6ce4d49a5ca822f2169914840c1dce6690ed Git commit 1073fe21ea617215469b07ccb4ae71ae26ada9f7 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. evdevtouch: Fix null dereference in debug output The device pointer was dereferenced one line above its own null check. Pick-to: 6.11 6.8 Change-Id: Iaf5488fe854cc6e6459413ac10f6e762342fc69b Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 77ff1c94e0165d57a3eb44a1914c02d88b7707fb) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/1073fe21ea617215469b07ccb4ae71ae26ada9f7 Git commit f4fd79c010707ded5b8911b8f2bc0764a21e807d by Qt Cherry-pick Bot (on behalf of Aurélien Brooke) on 13/08/2026 at 13:58.. QResource: avoid QString allocations in findNode() Return mapping roots as QStringView and keep the lookup path as a view in QResourceRoot::findNode(). This avoids constructing unnecessary temporary QString objects for each lookup. Handle the optional separator without modifying the mapping root, preserving the existing behavior for roots with and without a trailing slash. The QtTest benchmark added by this change uses a .rcc mounted at /mappedroot and measures QResource construction followed by isValid(). Both variants used RelWithDebInfo builds. QtTest's Linux perf backend ran 21 samples of 1,000,000 iterations on one pinned CPU: Before After Valid mapped resource 1005.1 762.8 cycles/iteration (-24.1%) Invalid mapped resource 922.6 634.0 cycles/iteration (-31.3%) For 100,000 lookups in either case, Heaptrack attributed 200,000 allocations to findNode() before the change and none after it. Change-Id: I51bd14178243375c9d058ab8388fa11f78fd77f6 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit d2e9bf643ef9c576e88b7f7e2759c33e2ac8b241) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f4fd79c010707ded5b8911b8f2bc0764a21e807d Git commit 08564ab834304d4131fd3043eb0d26d79e9e23c6 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. linuxfb: Fix crash when no DRM output is discovered output(0) indexed an empty list when all connectors are disconnected or every output is off or skipped in the KMS config. Fail the screen initialization instead, which the caller already handles. Pick-to: 6.11 6.8 Change-Id: I56b3da27fa95b3ad35da2dec0aad6148c402e85b Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit c5347d5e4323760b52c2cb66717627668fd854b0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/08564ab834304d4131fd3043eb0d26d79e9e23c6 Git commit 36f2105b17d699774b927c56ce53f0067189c23b by Qt Cherry-pick Bot (on behalf of Aurélien Brooke) on 13/08/2026 at 13:58.. QResource: avoid redundant QLocale construction Pass the file name and locale to QResourcePrivate's constructor so both members are initialized directly. Previously, the locale member was default-constructed and both members were then assigned in the public constructor. This removes a QLocale default construction, including its system locale mutex acquisition, from every QResource construction. The existing QtTest benchmark measures QResource construction followed by isValid(). QtTest's Linux perf backend ran 21 samples of 1,000,000 iterations on one pinned CPU: Before After Valid mapped resource 750.2 675.0 cycles/iteration (-10.0%) Invalid mapped resource 624.3 546.1 cycles/iteration (-12.5%) A second run in reverse order produced improvements of 9.9% and 12.2%, respectively. Change-Id: Ia0a8bbccec8d2b92dae6547f9fb4833aa70c4b78 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit d8fe3816dcaa9ed161f81fcedc5bca0808a1674d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/36f2105b17d699774b927c56ce53f0067189c23b Git commit 182ea6c651f9ef2cfd58ec393fd98b6fc16b4247 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. linuxfb: Fail instead of showing a blank screen on an unknown format determineFormat() returns Format_Invalid for an unrecognized bitfield layout or an 8-bit depth, but initialize() reported success anyway. The resulting null QImage left the display permanently blank, with only a QPainter warning to explain it. Pick-to: 6.11 6.8 Change-Id: I9460e97e82b3615f99cd65662176966f6ba01f0a Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit a99028d6c76ae0dbd8450981cc8bdeb57a739f31) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/182ea6c651f9ef2cfd58ec393fd98b6fc16b4247 Git commit 28980964ace2c265392389232dc27c81cb321d67 by Qt Cherry-pick Bot (on behalf of Aurélien Brooke) on 13/08/2026 at 13:58.. QResource: avoid a temporary QLocale in ensureChildren() Pass QResourcePrivate's locale to QResourceRoot::findNode() while collecting children. This avoids default-constructing a temporary QLocale at the call site. Remove findNode()'s default argument so all callers must pass a locale explicitly. Add a benchmark that constructs a resource for :/mappedroot and calls children(). QtTest's Linux perf backend, using the cpu-cycles counter, ran 21 samples of 1,000,000 iterations on one pinned CPU. Averaging runs in both orders produced: Before After Mapped-root children 1365.9 1319.6 cycles/iteration (-3.4%) Change-Id: I5b67e8442d4307b1a08c30db3a2026f05bf1ccef Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit e9813a3c1865d7a76caa731cbe173b2b59cd0ab6) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/28980964ace2c265392389232dc27c81cb321d67 Git commit ce06d9f07360967c8b1a0f5241525c3a9955203d by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. Fix touch device to screen mapping for symlinked device nodes The table was keyed on the canonical path of the configured touchDevice but looked up with the device node string the input handler was given. Those agree when the device comes from discovery, which always yields /dev/input/eventN, so the common case worked. They differ when the node is named explicitly by a stable symlink, for example QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/by-id/..., and then the lookup silently missed and touches went to the primary screen. Canonicalize on lookup as well, fall back to a literal match, and warn instead of storing an empty key when the configured path cannot be resolved. Pick-to: 6.11 6.8 Change-Id: I59bf26e16e8441a4976222ca0e31a9b7337d7a99 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 9981b42aa1d3c6edd8ea2cd221cf29b86571e2a9) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/ce06d9f07360967c8b1a0f5241525c3a9955203d Git commit e59d7218806ed890fe69bb513300da00f914b061 by Qt Cherry-pick Bot (on behalf of Aurélien Brooke) on 13/08/2026 at 13:58.. QResource: avoid an allocation for single-root lookups Use QVarLengthArray with inline capacity for one pointer for QResourcePrivate::related. A valid resource lookup normally has one matching root, so keeping that pointer inline avoids a heap allocation. Dynamic storage remains available when multiple resource roots match. A static survey of the resource trees compiled into QtGui, QtQml, QtQmlMeta, QtQmlModels, QtQmlWorkerScript, and QtQuick found 22 RCC roots and 206 distinct paths. Of those, 200 match exactly one root, including all 192 leaf paths. The six multi-root paths are shared directories matching 3, 5, 15, 15, 21, and 22 roots. Add a benchmark for two matching roots. QtTest's Linux perf backend, using the cpu-cycles counter, ran 21 samples of 1,000,000 iterations on one pinned CPU. Averaging runs in both orders produced: Before After Single matching root 675.7 618.9 cycles/iteration (-8.4%) Two matching roots 810.3 766.3 cycles/iteration (-5.4%) Invalid resource 545.6 551.9 cycles/iteration (+1.1%) For 100,000 single-root lookups, Heaptrack reports 100,001 fewer allocations. The allocation count for two-root lookups is unchanged, while the requested storage drops from 32 to 16 bytes. The inline storage increases sizeof(QResourcePrivate) from 144 to 152 bytes. Change-Id: I387b095b7d3e2e6354e04b39f0d97e2c15aa152d Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 9bb4b56cc31aed0768eccf0bfcd41c0bf308d603) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e59d7218806ed890fe69bb513300da00f914b061 Git commit c0e54ac92341374d888481a4ed3d4993173920e4 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. kms: Do not put uninitialized stack bytes into a DRM mode blob parseModeline() set only the fields it parses and the four it zeroed explicitly, leaving name[] and the rest of the caller's stack drmModeModeInfo untouched. The struct is passed whole to drmModeCreatePropertyBlob(), so up to 32 uninitialized bytes ended up in a property blob that other DRM clients can read back. Zero the whole struct instead, which also covers any field added later. Pick-to: 6.11 6.8 Change-Id: I69afb522de18fb3a928a3edf359c6595895b2491 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit d769af94fd05112873dce5147fdd68d71b3d107d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/c0e54ac92341374d888481a4ed3d4993173920e4 Git commit c0f2183eef07a69358f567aba361c41bf6f5855c by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. linuxfb: Honor the DRM device from the KMS config The DRM backend passed a hardcoded /dev/dri/card0 to QKmsDevice, and since the base class only consults the config when the given path is empty, the "device" key of QT_QPA_EGLFS_KMS_CONFIG was silently ignored here, unlike in the eglfs KMS integrations. A board whose DRM device is not card0 could not be configured. Passing an empty path is not an option, as QKmsDevice then aborts when there is no config file, so keep card0 as the fallback. Pick-to: 6.11 6.8 Change-Id: Icaef369d80ec42b6090d64b85f9cc1a83d9afc30 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 8d94499f785f8a5c9be2e6cb1a92fc1fb40e5eee) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/c0f2183eef07a69358f567aba361c41bf6f5855c Git commit 0b2103ddebec90004a9fc490f184ef26ed3e3ec4 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. vkkhrdisplay: Log through a category instead of unconditional qDebug Every startup of a shipped application printed the display and mode enumeration and a full plane capability dump to stdout. Move all of it behind a qt.qpa.vkkhrdisplay category, as the other embedded platform plugins do. The qWarning calls report real failures and are left alone. Pick-to: 6.11 6.8 Change-Id: I75cfe393a08c5352f89eed8103f8b7a646da5c93 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 28cf5581b8beafd1685db89991f539ef711d2047) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/0b2103ddebec90004a9fc490f184ef26ed3e3ec4 Git commit 24908b665f1e9ef5e6ddfc3bb76ba6763b8008c6 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. eglfs: Validate cursorsPerRow of the cursor atlas The value was read with toDouble() and converted to int, which is undefined for anything outside int range, and only checked with a Q_ASSERT that is compiled out in release builds. A missing or zero entry then divided by zero two lines later, and a huge one overflowed Qt::LastCursor + cursorsPerRow. Read it with toInt(), which yields 0 for a missing key and for anything that is not a whole number in range, and reject values outside 1..Qt::LastCursor + 1, more cursors per row than there are cursors being meaningless. Only custom atlases set through QT_QPA_EGLFS_CURSOR are affected; the built-in one is unchanged. Task-number: QTBUG-149070 Pick-to: 6.11 6.8 Change-Id: Iace91803d1897a957eca11ad247b3351be3b36d7 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 5bff0cac99125b602dd02ff1ef4e000a737b3b2a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/24908b665f1e9ef5e6ddfc3bb76ba6763b8008c6 Git commit 5a5300e06d35bc5a12eff26007608b0ff638453a by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. kms: Avoid undefined shifts when tracking CRTC usage m_crtc_allocator is a 32 bit mask, but the CRTC index shifted into it was bounded only by the number of CRTCs the device reports, and the shifts were done on a signed 1, so index 31 was already undefined. Bound the index where it originates, in crtcForConnector(), which covers all four users, and make the shifts unsigned. No device exposes more than 31 CRTCs today, so this is hygiene rather than an observable fix. Pick-to: 6.11 6.8 Change-Id: Ia532174388f668687dd1d6dfc39ae5c014230c97 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 957a533bb6d7c824cf2a9b83f125e2a185a547ef) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5a5300e06d35bc5a12eff26007608b0ff638453a Git commit 5c1085c7ba227ee3df55b80408a118f4d0ba2544 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. devicediscovery: Check the udev device before using it udev_device_new_from_syspath() can fail, and the result was passed straight on to udev_device_get_devnode() and udev_device_unref(). Pick-to: 6.11 6.8 Change-Id: Ibe1504967760552885302b3087ac9829c5dc1260 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 28862699f08654a8136cdb1b7684f44c82680e95) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5c1085c7ba227ee3df55b80408a118f4d0ba2544 Git commit 43cb234206ff83ecb5b46d753505910d59f42835 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 13/08/2026 at 13:58.. vkkhrdisplay: Use the first suitable plane, not the last The loop had no break and kept overwriting the selection, so the highest numbered suitable plane won, while the comment above it says to use the plane that was found. Keep the first match instead. Guarding the assignment rather than breaking out preserves the capability logging for the remaining planes, which is the only other thing the loop does. Pick-to: 6.11 6.8 Change-Id: Id27f7cd9af1efed0c28c7eaef31432226fc1ad20 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 863a42b89565de98918c4c5ca741841f29886573) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/43cb234206ff83ecb5b46d753505910d59f42835