[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 a134e206b6bbc56ff31eea0215a2ce0ebd3096ef to 781c189edc21cf2ebafc192b7593964d9aecc7f2 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 22f944996a87a1b72dbac0397658c49c09aded55 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. Massage qrhi autotest to avoid weird Vulkan layer issues Start (re)using the same QRhi (and so Vk or D3D device object) between some test cases. Especially textureFormats(), where with each backend a simple test is run 50+ times. Creating a new QRhi every time is slow, so this shaves off some seconds from the total time of the autotest run mainly because of that one test. Also use it in some of the recent, newer test functions. Stick to the per-test QRhi in the rest, however. Move the leaked resource test to the last place. This test may cause issues, somehow perhaps combined with the large number of vkCreateDevice calls preceeding (or following) it, depending on the underlying driver, and perhaps the third-party, implicitly loaded Vulkan layers installed on the system (e.g. from Steam, OBS Studio, etc.). At least one one system these changes together successfully prevent an intermittently occuring "The VkDevice dispatch handle was not found and Validation will crash." crash. AI assisted analysis points to a combination of possible driver limitations due to the excess device creations during the lifetime of the process in combination with faulty logic in third-party layers that are loaded implicitly by the Vulkan loader on that particular system. Change-Id: I6116b39b63384a21e860f7a5f138662521307c7d Reviewed-by: Christian Strømme <[email protected]> (cherry picked from commit e6e36ce83f2dc84428f22a79dd25622b13bc0f7e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/22f944996a87a1b72dbac0397658c49c09aded55 Git commit 5a7d1c535f281d4fc3dd5a4f1a8747ba67fc6ddc by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. rhi: d3d12: Enable the pipeline cache Using ID3D12PipelineLibrary1, in a similar manner as the Vulkan backend is implemented via VkPipelineCache. Store a header with the QRhi id, the architecture and the adapter identity, followed by the serialized blob. Note that the driver version does not have to go into the header, because CreatePipelineLibrary() validates the blob against the current driver and adapter itself, failing with D3D12_ERROR_DRIVER_VERSION_MISMATCH or _ADAPTER_NOT_FOUND. Skip in that case. Pipeline libraries may not be supported by a driver, handle that gracefully too. The one thing that has no counterpart in the Vulkan backend is naming: VkPipelineCache is consulted by the driver transparently, whereas a pipeline library needs an explicit name per PSO for LoadPipeline() and StorePipeline(). The name is a SHA-1 of everything the PSO is built from: the shader bytecode of each stage, the vertex input layout, the plain-data subobjects of the pipeline state stream, and the srb's serialized layout description, the latter standing in for the root signature. Note that a hash collision cannot silently produce a wrong pipeline: LoadPipeline() validates the stored pipeline against the description passed to it and fails if they do not match, in which case this falls back to creating the pipeline for real. As with Vulkan, running a Qt Quick application will now store the blob when closing the QQuickWindow (use QSG_INFO=1 to confirm from the logs), and the next run, assuming no new scenegraph materials are needed for the view, there will be a reduced amount of time spent on graphics pipeline creation due to the loading of the blob from the previous run. Note however that the system's/driver's own persistent caching may affect the results, so as with Vulkan, the gains from doing our own PSO caching on disk are not always obvious or big. Change-Id: I0ebf63548fabbc5586fb065ea3438f233902a5e0 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 2aa2fd64ea8338985fdef8ce3989718d3516ec6d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/5a7d1c535f281d4fc3dd5a4f1a8747ba67fc6ddc Git commit e0b3cbe602c883fedfab4123f92d63360bde84d6 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. rhi: gl: Avoid division by zero in corrupt metadata input Change-Id: Ie13c33eeab2ee593b0a76fd0faacb2a02983ff62 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 7295e5ccfb241f7c75a5f40afa0b84e507d68587) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e0b3cbe602c883fedfab4123f92d63360bde84d6 Git commit 7cb6aa257e794c301a6023b9ddb0370716e5569f by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. rhi: d3d: Bail out with a warning for an unknown shader stage Cannot happen, unless the QShader is corrupt, but handle it more gracefully, so analysis tools do not flag it as a potential safety issue. Change-Id: Ife33d902365aa4a3e53d36dd29f6dd4961d06f6e Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 6ba865af48535a6a21ff341a2984805a74a38c3e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/7cb6aa257e794c301a6023b9ddb0370716e5569f Git commit 6022179f5b8b01f794ef93d27fbe65373f9193c5 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. rhi: gl: Handle too small uniform buffers more gracefully Bail out if we'd read past the end based on the QShader reflection information due to the application-supplied buffer being too small. This does not change the fact that all input is still expected to be fully trusted content. Change-Id: Ibc5654678d2171dafcbac44350b68b1cccf45a58 Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 6337ecd4b816e106e167644a5c868dacb11dc26a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/6022179f5b8b01f794ef93d27fbe65373f9193c5 Git commit 781c189edc21cf2ebafc192b7593964d9aecc7f2 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 03/08/2026 at 17:57.. Document security considerations for the QVulkan classes Task-number: QTBUG-148680 Change-Id: I5ec86297637fa445ee5af2380e1a49dbb54f36ea Reviewed-by: Andy Nichols <[email protected]> (cherry picked from commit 2ef60b71530ce8fc330d54a2d79c02e4cd661138) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/781c189edc21cf2ebafc192b7593964d9aecc7f2