[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