[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 'dev'.
Changed from b4ced2b143a652cf8f6d42f798d28c5e37fa1813 to 2ef60b71530ce8fc330d54a2d79c02e4cd661138
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 4a3747ce2a48d2e5e8e9c903a1cd54018045db18 by Eskil Abrahamsen Blomfeldt (on behalf of Paul Olav Tvete) on 03/08/2026 at 14:27..
FreeType: Skip bitmap decode for metrics-only glyph loads

When available, use FT_LOAD_BITMAP_METRICS_ONLY for fetching
metrics to avoid decoding the same bitmap data multiple times
when only the glyph metrics are queried.

This can improve the rendering performance of individual emojis by
4000%.

Pick-to: 6.8 6.11 6.12
Change-Id: I3b256356cee63fc04495861e6ac78e98d2629b6d
Reviewed-by: Paul Olav Tvete <[email protected]>
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/4a3747ce2a48d2e5e8e9c903a1cd54018045db18

Git commit edd0a78a48b23b2371b1d053405ef1fb4f6c1110 by Karim Pinter on 03/08/2026 at 14:27..
VxWorks 26.03 fixes tst_QFile::openDirectory() fail on CI

Using VxWorks 24.03 and 25.03 caused tst_QFile::openDirectory() to fail,
on 26.03 it works, the QEXPECT_FAIL macro has been removed.

Fixes: QTBUG-130074
Pick-to: 6.12
Change-Id: I225c9ab4a4688bd9f8e4445714b5fea266de55e9
Reviewed-by: Thiago Macieira <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/edd0a78a48b23b2371b1d053405ef1fb4f6c1110

Git commit e6e36ce83f2dc84428f22a79dd25622b13bc0f7e by Laszlo Agocs on 03/08/2026 at 17:56..
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.

Pick-to: 6.12
Change-Id: I6116b39b63384a21e860f7a5f138662521307c7d
Reviewed-by: Christian Strømme <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/e6e36ce83f2dc84428f22a79dd25622b13bc0f7e

Git commit 2aa2fd64ea8338985fdef8ce3989718d3516ec6d by Laszlo Agocs on 03/08/2026 at 17:56..
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.

Pick-to: 6.12
Change-Id: I0ebf63548fabbc5586fb065ea3438f233902a5e0
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/2aa2fd64ea8338985fdef8ce3989718d3516ec6d

Git commit 7295e5ccfb241f7c75a5f40afa0b84e507d68587 by Laszlo Agocs on 03/08/2026 at 17:56..
rhi: gl: Avoid division by zero in corrupt metadata input

Pick-to: 6.12
Change-Id: Ie13c33eeab2ee593b0a76fd0faacb2a02983ff62
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/7295e5ccfb241f7c75a5f40afa0b84e507d68587

Git commit 6ba865af48535a6a21ff341a2984805a74a38c3e by Laszlo Agocs on 03/08/2026 at 17:56..
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.

Pick-to: 6.12
Change-Id: Ife33d902365aa4a3e53d36dd29f6dd4961d06f6e
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/6ba865af48535a6a21ff341a2984805a74a38c3e

Git commit 6337ecd4b816e106e167644a5c868dacb11dc26a by Laszlo Agocs on 03/08/2026 at 17:56..
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.

Pick-to: 6.12
Change-Id: Ibc5654678d2171dafcbac44350b68b1cccf45a58
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/6337ecd4b816e106e167644a5c868dacb11dc26a

Git commit 2ef60b71530ce8fc330d54a2d79c02e4cd661138 by Laszlo Agocs on 03/08/2026 at 17:56..
Document security considerations for the QVulkan classes

Task-number: QTBUG-148680
Pick-to: 6.12
Change-Id: I5ec86297637fa445ee5af2380e1a49dbb54f36ea
Reviewed-by: Andy Nichols <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/2ef60b71530ce8fc330d54a2d79c02e4cd661138
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.