[qt/qt/qtshadertools]: 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/qtshadertools
Pushed by mirror-service into branch '6.12'.
Changed from 4c68d4fda2ae80f4d860138c2582afe66fc3bc8a to 0fff8eb2c62feea07ba06991d6d2e3d072ae4623
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 8e15c6c41b92af70bc5baad36b6be45cc53ded81 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 19/08/2026 at 09:46..
Make per-target shader baking reproducible

In per-target compilation mode bake() generates a separate SPIR-V binary
for each requested target, and then has to pick one of them to generate
the single QShaderDescription of the resulting QShader from. That pick
was the first element of a QHash, and so depended on the per-process
randomized QHash seed: invoking qsb twice with the very same arguments
could produce .qsb files that differ in their reflection info. That in
turn defeats reproducible builds and content-addressed build caches.

Use ordered maps instead. As a bonus this makes the choice a sensible
one, not merely a stable one: QShader::SpirvShader is the first Source
enum value, hence the reflection info now always comes from the plain
SPIR-V target whenever one was requested (which qsb always does).

Note that when a shader declares its resources differently depending on
the QSHADER_SPIRV/GLSL/HLSL/MSL macros, the reflection info can only
ever be correct for one of the targets. Nothing to do about that, given
that a QShader has one QShaderDescription, but at least the result is
now consistent between runs.

Change-Id: Ieb95afe4d243cc6d6572a8beae72cc0bc3faab05
Reviewed-by: Andy Nichols <[email protected]>
(cherry picked from commit 1372256f2364d8d2284b8ce8a275ce02f634b2fe)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtshadertools/-/commit/8e15c6c41b92af70bc5baad36b6be45cc53ded81

Git commit 478163cd12442bd8355fcb3b53c2be823f9f7896 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 19/08/2026 at 09:46..
qsb: Keep the native-shader-info data when storing Metal bytecode

replaceShaderContents() moves the native resource binding map and the
separate-to-combined image sampler mapping table from the original key
to the new one, but not the native shader info. The MSL-specific data
was therefore lost whenever -t/--metallib replaced the MslShader entry
with a MetalLibShader one.

That data is not optional: the Metal backend looks up the extra buffer
bindings for tessellation and for the buffer size buffer, and asserts on
their presence.

Change-Id: I79cb4dd94d65a3290afb5dbcb14900c6b120d67b
Reviewed-by: Andy Nichols <[email protected]>
(cherry picked from commit 27690d535b2d3ef27e5d0efb005aeac11af96808)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtshadertools/-/commit/478163cd12442bd8355fcb3b53c2be823f9f7896

Git commit 0fff8eb2c62feea07ba06991d6d2e3d072ae4623 by Qt Cherry-pick Bot (on behalf of Alexandru Croitor) on 19/08/2026 at 10:27..
Doc: Rename the second qt_add_shaders argument to resource_name

The synopsis called it <name>, which doesn't say what the value is
used for. It is the name of the generated resource, same as for
qt_add_resources().

Fixes: QTBUG-149152
Change-Id: Ib6b7b36bb9dae797086e5992825a8e7392022466
Reviewed-by: Joerg Bornemann <[email protected]>
(cherry picked from commit ea2288669b4f0ca1c50c3f2c924b7765fbf562b7)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtshadertools/-/commit/0fff8eb2c62feea07ba06991d6d2e3d072ae4623
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.