[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 610137137d19dcc6c941c995e137611e5fe2723c to a10fd56403aceedbac6d81075cfe4a646e67c036 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 e0c5b8d60a67e00d04758acd554cfd7b28d1557b by Qt Cherry-pick Bot (on behalf of Andy Nichols) on 30/07/2026 at 17:23.. rhi: metal: Do not take the offset-only path when the pipeline changed setShaderResources() takes a shortcut when only dynamic uniform buffer offsets changed for the currently bound srb: enqueueShaderResourceBindings is then invoked with offsetOnlyChange=true, which re-encodes buffer bindings only, skipping all texture and sampler bindings. The condition for taking this shortcut did not consider that the pipeline may have changed since the srb was last bound. The native resource binding maps come from the pipeline's shaders, so two pipelines using the same srb can map the same binding point to different native slots, or, when a shader does not reference a binding at all, to no native slot whatsoever. In that case the previously encoded state for the srb says nothing about what the new pipeline needs. Concretely, with pipelines P1 (references a texture binding of the srb) and P2 (does not reference it), the sequence: bind srb with P2, bind some other srb (e.g. one that encodes another texture to the same native slot in some other pipeline), then bind srb again with P1, left the fragment texture bindings stale: srbChanged was false, only the dynamic offset changed, so the offset-only path skipped re-encoding the textures and the draw sampled whatever an earlier draw had left in the native texture slots. Include pipelineChanged in the offsetOnlyChange condition. The full re-encode still goes through the per-batch redundancy checks against currentShaderResourceBindingState, so redundant Metal calls continue to be avoided when the encoded state actually matches. Pick-to: 6.10 6.8 Change-Id: Icb72a1be61728cb1594693decab1acf99880a159 Reviewed-by: Laszlo Agocs <[email protected]> (cherry picked from commit 01777770ff83628a50a46eb269feb6bd68c3fefd) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e0c5b8d60a67e00d04758acd554cfd7b28d1557b Git commit b08a4db621ee9582cb8edfc33ae3c88e6574947f by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 30/07/2026 at 17:23.. QVariant: micro-optimize PrivateShared::computeOffset() When the type in question has normal alignment, we don't need to compute the offset, so save some cycles. This has the advantage it is the same check we had done in computeAllocationSize(), so GCC has been observed to simplify the entire function for such alignments. Change-Id: I1341d0372d23f11ff3cbfffd4b2ea34d245e032b Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Aurélien Brooke <[email protected]> (cherry picked from commit 6c7cb62b244fec076b66d5fda7889733182a548b) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/b08a4db621ee9582cb8edfc33ae3c88e6574947f Git commit 5ca6e820cbc087655d137c5ed3d43c8c317fed78 by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 30/07/2026 at 17:23.. QVariant: add missing Float16 and BFloat16 conversions Complements a4daf4939644ea3a087a8c03b1ec962e2e4defa8 for Float16. The check for BFloat16 in qIsNumericType() is disabled because the one in qIsFloatingPoint() is disabled too (I don't remember why). Change-Id: Ica709ec244c9ee59e1fefffded5a3c50cc5d5d22 Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit 7772cdd675a9568acd971529226f22e5237e826f) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5ca6e820cbc087655d137c5ed3d43c8c317fed78 Git commit 1554ce1464e5332883b03d662d7c5c574f00ce74 by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 30/07/2026 at 17:23.. QVariant: micro-optimize getting an unsigned number On little-endian platforms, we can eliminate the switch and just always load the 64 bits, because we know that in QVariant the extra bytes are always zeroed. This is equivalent to the old code, which performed zero- extension from the 8-, 16-, and 32-bit quantities loaded. We can't do the same for signed numbers *because* the extra bytes are always zeroed: the trick doesn't work because the old code performed sign extension. Change-Id: I92c8e39aaad6f2446592fffdfbc6b4942b27c05f Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit 5f4f26fc58fa12984a23094b67942964b31e172c) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/1554ce1464e5332883b03d662d7c5c574f00ce74 Git commit 14f7d3cd6cd17169ddd4bb1a5f5bc0f290945dc2 by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 30/07/2026 at 17:23.. QVariant: inline qMetaTypeNumberBySize() in qMetaTypeNumber() GCC and Clang are (currently) generating jump tables. Clang appears to somehow generate a table that combines the size and the metatype ID, while GCC just emitted the size check inside of one of the table's targets. This commit helps both compilers by letting them emit slightly shorter code and a table that includes the integers. Change-Id: I87dcac0555e675d5dd6bfffd280d845ab916a09c Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit bc52bc1713794a93693f022e1ccde35814934b72) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/14f7d3cd6cd17169ddd4bb1a5f5bc0f290945dc2 Git commit 282eb58bf197e0b9c0b79c3e8527e3bf9670b1df by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 30/07/2026 at 17:23.. QMetaType: relax the loading of typeId The operator Int() member does a loadAcquire(). It's never necessary for QMetaTypeInterface because the rest of the object is constant. Change-Id: I3faa4d40fcd6c96d6680fffd3d77482d64f6a572 Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit 2fc1c2b3b387aa9716b7779e5c95c3aea0e3ed93) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/282eb58bf197e0b9c0b79c3e8527e3bf9670b1df Git commit 070d00ac040f986bc5e1f0d13b0cf31fe5c231cf by Edward Welbourne on 30/07/2026 at 17:23.. Update our copy of Linux's perf_event.h to version 7.0 The changes are mostly cosmetic, but taking them in makes later updates easier to assess. [ChangeLog][QtTest][Third-Party Code] QtTest's benchmarks now use the version of Linux's perf_event.h from kernel version 7.0 Task-number: QTBUG-146335 Change-Id: Idd9fb2788194c80113ed1fb6322ea99109e643e5 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 66804661942c031e28429a18822793b827062b03) Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: Kai Köhne <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/070d00ac040f986bc5e1f0d13b0cf31fe5c231cf Git commit c1f9638272987933c8e68a7cf185e5bfcbd38730 by Qt Cherry-pick Bot (on behalf of Marc Mutz) on 30/07/2026 at 17:23.. QSet: actually move in unite(QSet&&) The old code moved from an `e` obtained by range-for-looping over a QSet, but decltype(e) is const T&, because QSet::iterator::operator*() returns a reference to const. So the code didn't actually move. Fix by using private QHash API to get a reference to the key we can actually move from, and add a test that checks the move actually happens. Amends 68cac07d500851209eab93dec771c45ac4864c8a (6.10). Pick-to: 6.11 Fixes: QTBUG-148564 Change-Id: I31340f0e6cab0fc31ad689e4d250228616679573 Reviewed-by: Allan Sandfeld Jensen <[email protected]> (cherry picked from commit 4fe58d9bda4c09577fdf476c55e57f20014d2466) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/c1f9638272987933c8e68a7cf185e5bfcbd38730 Git commit a10fd56403aceedbac6d81075cfe4a646e67c036 by Qt Cherry-pick Bot (on behalf of Fabian Kosmale) on 30/07/2026 at 17:23.. QXmlStreamReader: Avoid stack-exhaustion in readElementText The current algorithm calls the function recursively, which can be problematic if one encounters deeply nested elements. There is no need for recursion here, though: We can just keep track of the nesting level in the loop instead. Amends the start of the public history. While modifying the control structure anyway, move the result declaration out of the conditional, so that NRVO can apply. Fixes: QTBUG-148482 Pick-to: 6.11 6.8 6.5 5.15 Change-Id: I9ec0aa9339f586737609aa031e882e163ac02caa Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Marc Mutz <[email protected]> (cherry picked from commit 50cc08f278c6961d00b5b8bae408d4ccc2fbca4d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/a10fd56403aceedbac6d81075cfe4a646e67c036