See eg. https://git.reviewboard.kde.org/r/104918/ The issue here is that the shadermanager just restores the used shader, but not the uniforms etc. so that if you push a shader, alter some uniforms and pop the shader, that does not mean you end up where you started. Instead you've to - store all uniforms you might touch - push the shader again when done (to ensure you alter the right one and nothing else has currently pushed the other shader) and reset uniforms.
Thank you for the bug report. As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists. If this bug is no longer persisting or relevant please change the status to resolved.
Not a bug bug code deficiency that lead to clumsy client code as illustrated by the patch in the (now 404) review link (was a fix by Martin to the desktop cube effect)