While developing we've ran into the following issue: at some point after switching to a specific FBO depth buffer stops working as expected. Depth test always passes.
We've played with the depth test set up/VS output and managed to get output which looks like z-fighting artifacts - I'm testing flat triangle parallel to a screen against z-buffer filled by the ground plane (which is orthogonal to the screen) - the results on the screen don't make any sense to me either. Blocks of pixels flash randomly and don't make any recognizable pattern.
When I press square on the android hud and and shows the list of applications the picture might switch to one I expect to see. One of the real footage levels is rendered correctly for several seconds, then it breaks.
This issue happens for the depth buffer which is used by multiple FBOs. It is cleared at the very beginning of the frame. No unexpected clears are performed later. glInvalidateFramebuffer is disabled. To make it worse everything looks fine on other vendor's devices. I've disabled all vendor-specific code.
When I try to check the content of the FBOs using your frame debugger tool both depth and stencil planes are hatched. In other FBOs all the planes look as expected (we still see some hatched planes but this is for the buffers which aren't rendered during the current frame).
Any chance anyone bumped into similar issue?
Hi, Peter.
Thanks for jumping in. Yes, I understand that is it next to impossible to fix what I'm talking about without a repro case. Unfortunately I can't share neither build nor screenshots on public.
I hoped that this might be something already know so someone here, but it doesn't seem to be the case.
At the moment I'm talking to the Mali engineers directly in the e-mail thread. I'm in a process of sending out a build to them. Once we figure out the reason of the bug I'll share the wisdom of your guys here if I'm allowed to.
Thanks again to anyone who responded. I appreciate this!