[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
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.