This is almost always the case in a typical Quick or Quick 3D rendering sequence, since there is almost always a uniform buffer, which is almost always a QRhiBuffer::Dynamic buffer, thus triggering double (or triple, whatever max_frames_in_flight is) buffering and using multiple descriptor sets. This breaks down e.g. when using a compute pipeline and a texture for imageLoad/store in the srb. If the texture is rebuilt between frame N and N+1, then in frame N+1 the srb sees that the descriptor set needs to be rewritten, but that's wrong since frame N might still be in flight, using that descriptor set. From now on, pretend that an srb always needs double buffering, regardless of what kind of resources it references. Also drop unused code paths. The updateShaderResources function's argument was never -1, for example, so no point in keeping that logic. Pick-to: 6.8 Change-Id: If8abb42fd9a2de5aad59ab6ceab3c8086aebae68 Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 30dc9ed13fcc2691ed656f6f36d419133856c8cd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
…
…
Description
Languages
C++
84.3%
HTML
4.9%
C
3.9%
CMake
3.6%
Objective-C++
2%
Other
0.8%