[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 'dev'. Changed from 635c609d7f8f86f8ba6559527e5d49c9e24bb65f to 50cc08f278c6961d00b5b8bae408d4ccc2fbca4d 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 01777770ff83628a50a46eb269feb6bd68c3fefd by Andy Nichols on 30/07/2026 at 15:47.. 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.12 6.10 6.8 Change-Id: Icb72a1be61728cb1594693decab1acf99880a159 Reviewed-by: Laszlo Agocs <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/01777770ff83628a50a46eb269feb6bd68c3fefd Git commit 4fe58d9bda4c09577fdf476c55e57f20014d2466 by Marc Mutz on 30/07/2026 at 17:10.. 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.12 6.11 Fixes: QTBUG-148564 Change-Id: I31340f0e6cab0fc31ad689e4d250228616679573 Reviewed-by: Allan Sandfeld Jensen <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/4fe58d9bda4c09577fdf476c55e57f20014d2466 Git commit 50cc08f278c6961d00b5b8bae408d4ccc2fbca4d by Fabian Kosmale on 30/07/2026 at 17:10.. 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.12 6.11 6.8 6.5 5.15 Change-Id: I9ec0aa9339f586737609aa031e882e163ac02caa Reviewed-by: Ivan Solovev <[email protected]> Reviewed-by: Marc Mutz <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/50cc08f278c6961d00b5b8bae408d4ccc2fbca4d