diff options
| author | Laszlo Agocs <lagocs83@gmail.com> | 2025-03-03 17:04:17 +0100 |
|---|---|---|
| committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2025-03-11 12:54:48 +0000 |
| commit | e9fa3e42444faec33a33f4c6ce673f08db2280eb (patch) | |
| tree | 754885a56b308465ad43f9b72c8e3c32951a279f /src/opengl/qopenglshaderprogram.cpp | |
| parent | 25394fab9a3a501311601e45af310b3949dff2c6 (diff) | |
rhi: gl: Fix an srb tracking issue
Have two pipelines that are used with the same srb:
setPipeline(a);
setShaderResources(s);
draw
setPipeline(b);
setShaderResources(s);
draw
If this is repeated each frame, then on the second an subsequent frames
the uniforms for the program behind pipeline b will not be set,
i.e. the glUniformxx calls will be missing.
This is due to the pipeline's own srb tracking
(currentSrb/currentSrbgeneration) works: in the second frame
setShaderResources(s) for pipeline b will do nothing, since
the command buffer's tracked current srb is already s, and
also b's currentSrb is already s.
The problem remains hidden usually because Quick or Quick 3D
does not generate sequences like the above (same srb with different
pipelines).
Pick-to: 6.9 6.8
Change-Id: I56b962f0ba12370e0de7c87fb7178a0b9e4b0178
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/opengl/qopenglshaderprogram.cpp')
0 files changed, 0 insertions, 0 deletions
