My app works OK on:
-Windows Desktop GL
-Apple iOS iPad mini 2
-Samsung Galaxy Note 4 (ARM Mali-T760)
-Sony Xperia XZ2 Adreno 630
However when running on:
Huawei Mate 20 X (ARM Mali-G76) version OpenGL ES 3.2 v1.r16p0-01rel0.95d2435cbe2284d49b9bbcf5b1624fdd
Then I'm getting problems.
ARM Mali results:
after touching the screen to rotate the camera
I'm suspecting a driver bug.
This problem appears to be related to 'glInvalidateFramebuffer', if I replace all glInvalidateFramebuffer calls with glClear (or just remove the glInvalidateFramebuffer calls), then it starts to work ok.
Please check this link which includes APK files and images:
Sorry for the delayed response; it took a while for the driver team to hunt this one down.
On some driver versions we have a state tracking bug which causes an optimization to incorrectly trigger, causing tiles to be discarded even though they are different to the content in memory. This only occurs in cases where the render pass does not redraw the whole screen, so the rendered bounding box changes between uses of the same framebuffer.
The only workaround we have for now is ensuring that the whole screen is redrawn in render passes that use invalidate.
Kind regards Pete