diff options
| author | Laszlo Agocs <laszlo.agocs@qt.io> | 2025-06-03 12:48:30 +0200 |
|---|---|---|
| committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2025-06-10 11:25:50 +0000 |
| commit | f20a020b741606de972d7c575c24330115734fcd (patch) | |
| tree | e592746eefb7be8cff3d3d8af3ca22b4491105f4 /src/qml/jsruntime/qv4function.cpp | |
| parent | 52086f74e6d4211d66462e5377fc909b97be4523 (diff) | |
sg: Fix layers with recursive and MSAA
The Qt 5 era behavior, where 'recursive: true' combined with a sample
count > 1 did not have to involve using an additional backing buffer
(unlike 'recursive: true' with no multisampling), is not quite compatible with the QRhi-based system.
On Vulkan, for example, multisample rendering into a texture involves an implicit multisample resolve at the end of the render pass. This
is different from OpenGL's or D3D11's explicit resolve or blit
command.
The latter can get away with not caring about the recursive flag
whenever MSAA is in use, because the behavior is effectively the same as non-MSAA rendering with recursive set, i.e. render to a dedicated multisample buffer, then resolve (i.e., copy) into the actual non-MSAA texture.
But with APIs like Vulkan this cannot work. Sampling the texture that is set as the resolveTexture within the same render pass is wrong.
Thus the only choice is to treat non-MSAA and MSAA cases identically
when it comes to the recursive flag.
Task-number: QTBUG-112355
Task-number: QTBUG-118610
Pick-to: 6.10 6.9 6.8
Change-Id: Ic2f92579eff89d8cf32cccd4ea023556b8e39d1d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4function.cpp')
0 files changed, 0 insertions, 0 deletions
