[qt/qt/qtquick3d]: 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/qtquick3d Pushed by mirror-service into branch '6.11'. Changed from dc0af2dbd48ffda1ea21cc29269bbe9b31158eb4 to a8fc8d89277dff204e5b3d21534ef8edb3eb3073 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 564ba0b77d2a33ec6e2a3f94e24e9b3ab195c3d8 by Qt Cherry-pick Bot (on behalf of Andy Nichols) on 06/08/2026 at 16:24.. Weld positions before generating mesh levels of detail Simplification can only collapse an edge when the faces around it share its vertices, so a position that appears more than once in the vertex buffer pins every edge that touches it. A mesh exported with one vertex per triangle corner therefore has no collapsible edge at all, simplifyMesh() returns the input unchanged, and the loop breaks on the very first iteration without producing a single level: importing the Khronos Suzanne sample with --generateMeshLevelsOfDetail silently produced nothing. Weld by position first, simplify that, and translate the resulting indexes back to the original vertex numbering that the vertex buffer being written out uses; Suzanne then yields ten levels, from 6141 indexes down to 12. The meshoptimizer vertex remapping this needs is only compiled into Quick3DUtils, so generateVertexRemap(), remapVertexBuffer() and remapIndexBuffer() are exported next to the existing simplifyMesh() wrapper. Welding a position that was split only to carry different normals is safe because the level's normals are recalculated afterwards, but that is exactly what recalculateLodNormals=false turns off. The normals join the weld key in that case, so a hard edge stays pinned instead of leaving every face around it reading whichever of them the weld happened to pick; such a mesh then yields fewer levels, or none. Attributes the key does not cover still have to settle on one value, which is inherent to simplifying across a seam and only affects the coarser levels. A test imports a mesh stored with one vertex per triangle corner, in a smoothly shaded and a faceted version, and covers both option paths. Pick-to: 6.8 Change-Id: Ia027803ce4e1394843efa7d1bd603f0f1f0cd8f3 Reviewed-by: Christian Strømme <[email protected]> (cherry picked from commit 315d0381d571031b05b8f6df41698d3a8a8def28) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit d75dfea5e9581a7cc3038db4067409fa5784887d) https://invent.kde.org/qt/qt/qtquick3d/-/commit/564ba0b77d2a33ec6e2a3f94e24e9b3ab195c3d8 Git commit a8fc8d89277dff204e5b3d21534ef8edb3eb3073 by Qt Cherry-pick Bot (on behalf of Andy Nichols) on 06/08/2026 at 16:24.. balsam: Reset the QML id allocator between assets writeQml() allocates component-unique ids through three process-wide statics that were never cleared, one of them keyed by node pointer. balsam converts every positional argument in the same process and each scene releases its nodes before the next one is built, so a new node allocated at a freed node's address takes a false hit and is handed the previous asset's id. Only the first asset of a run comes out correct; the rest get ids belonging to their predecessor throughout, so the generated component either fails to load or binds to the wrong objects. Reset all three from one helper called by both exported entry points that allocate ids, writeQml() and writeQmlComponent(), the latter being exposed to the same hazard whenever the material editor rebuilds its scene between exports. A test converts one asset twice in a single process and requires the two generated components to be identical. Pick-to: 6.8 Change-Id: I4825fc2a6fa2d34fecc1a5d31b4400e24d7d550a Reviewed-by: Christian Strømme <[email protected]> (cherry picked from commit c0945182f53927640b53dc1a9d70478a899b12a0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 3083c5671c40bf95ff9e9df34e147153c1d17919) https://invent.kde.org/qt/qt/qtquick3d/-/commit/a8fc8d89277dff204e5b3d21534ef8edb3eb3073