[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 3624cfe1a407e595cb973451f7a2bfbf03145219 to da33b48d056c803f29a4ac99cf3e319d6fa2f92b
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 2509b468158121ab456dc81626c98766b6ca362a by Qt Cherry-pick Bot (on behalf of Li Zequan) on 02/08/2026 at 02:45..
Add unit to total and standard deviation in benchmark results output
Currently, the "total" value in benchmark output lacks a unit, which
can be misleading:
(total: 51, iterations: 512)
This makes it unclear whether the total is in milliseconds,
microseconds, or another unit. The same applies to the standard
deviation, where present:
(total: 51, std.dev: 2, iterations: 512)
Add the unit to both the total and standard deviation values:
(total: 51 msecs, std.dev: 2 msecs, iterations: 512)
Task-number: QTBUG-142002
Change-Id: I7fdccc7b93ad7221ce837f9909116545d7860afa
Reviewed-by: Liang Qi <[email protected]>
(cherry picked from commit 2177e1748f9a8fb2c6f1a0cda46f4af1faea9ca7)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/2509b468158121ab456dc81626c98766b6ca362a
Git commit fae4fdb76afdd64e163d45fb86578c13d18369d3 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 02/08/2026 at 10:22..
rhi: d3d12: Use one MSAA buffer per frame slot, not per back buffer
Unlike the swapchain's own buffers, an MSAA buffer is written and then
resolved into the back buffer within a single frame, and its contents
never have to survive into the next one. A swapchain render target is
always cleared in beginPass() as well. Thus having FRAMES_IN_FLIGHT (2)
buffers (and render target views) is enough, there is no need to have
BUFFER_COUNT (3). Saves a third of what is typically the largest
allocation in the process. For a 4K window with 4x MSAA that is around
130MB.
Change-Id: Ic056eeaae6adf8371f482d8284956d29dca7ae5c
Reviewed-by: Andy Nichols <[email protected]>
(cherry picked from commit 521a26d46140f43ffda28c21d65c2b23639cb587)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/fae4fdb76afdd64e163d45fb86578c13d18369d3
Git commit d1af7d5f2a51dbb56521d23d49ea4b7b91c7fa83 by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 02/08/2026 at 10:22..
rhi: d3d12: Size the per-frame staging area to what is used
QRhi::create() committed 16MB of upload heap per frame slot, so 32MB per
QRhi, allocated up front and never given back. Most applications do not
need this amount of staging area persistently: in the steady state a
typical Qt Quick scene stages very little, since what does get staged in
bulk tends to be textures uploaded once during startup or when changing
views.
The fallback for a request that does not fit is already there (the
dedicated, deferred-released staging area for that one upload). So we
for the "small" staging area we can start e.g. at 512KB per slot and
grow only once an application turns out to need more, with 16MB kept as
the upper bound.
Growing is reactive: record what each frame slot is asked for, then
resize in beginFrame(), which is where the area is rewound anyway. A
frame that outgrows the common, "small" area pays for a few dedicated
staging areas once, and the next frame on that slot has room. Shrink as
well when demand stays low for a number of (currently 60) frames,
halving down to the starting size, so that a one-off burst of texture
uploads does not keep the memory for the lifetime of the QRhi.
As an example, with this patch in place the lights example of Qt Quick
3D's memory usage goes ca. 118 MB -> 95 MB, using crude Task Manager
based measurement:
D3D11 56
OpenGL 97
Vulkan 144
D3D12 before 118
D3D12 after 95
Change-Id: I63410eebc245ca545d37740430ebe2373b3a27c3
Reviewed-by: Andy Nichols <[email protected]>
(cherry picked from commit 4a0aa935ae8463847d4b5aa98d61576f68baac49)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/d1af7d5f2a51dbb56521d23d49ea4b7b91c7fa83
Git commit da33b48d056c803f29a4ac99cf3e319d6fa2f92b by Qt Cherry-pick Bot (on behalf of Laszlo Agocs) on 02/08/2026 at 10:22..
rhi: d3d12: Build the mipmap generator pipelines on first use
QRhi::create() built the root signature and compute pipeline for both
the 2D and the 3D mipmap generator, always. That is two serialized root
signatures and two driver-side compute shader compiles per QRhi, even
when mipmaps are never built by an application.
Do it lazily instead.
Change-Id: Id366da22d10a84a53672f29a905c77dcc944153f
Reviewed-by: Andy Nichols <[email protected]>
(cherry picked from commit e1ff0baedb3ef1283f5070659d2b6c69470806f4)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
https://invent.kde.org/qt/qt/qtbase/-/commit/da33b48d056c803f29a4ac99cf3e319d6fa2f92b