Hi,
With an OpenGLContext attached, I get horizontal stripes over a gradient as soon as a child component has an effect set. The software renderer is fine. Seen on 8.0.15 and still there on 9.0.4, macOS 13, Retina.
The parent just does setGradientFill + fillAll, and the child draws an image with a DropShadowEffect set via setComponentEffect. The stripes take the colours of the child’s image and run across the parent, outside the child bounds. Minimal repro attached.
A few things I noticed:
- any ImageEffectFilter does it, even one that only calls drawImageAt, so it’s not the shadow itself
- a solid fill in the parent instead of a gradient: no problem
- drawing a 1x1 solid rect right after the gradient fill makes it go away
So my guess is the gradient quads are still pending when the effect paints the child into its own OpenGL image, the nested context binds other textures, and the outer context’s texture cache doesn’t know about it, so the gradient ends up sampling the wrong texture when it’s flushed.
For now I just removed the effect on our side.
Thanks
Minimal.cpp (2.2 KB)