Hello Mali devs,
We are are observing what appear to be tiling artifacts when sampling a depth texture after it has been rendered as part of a water murk effect. The particular sequence of operations is:
1) Render main scene to depth/color texture.
2) Render water murk (sampling depth rendered in main scene) with depth buffer disabled and frame buffer set to colour only.
3) Resture depth/color framebuffer and render rest of the scene.
It appears this is somehow timing related as the artifacting varies based on camera angle/framerate. I've attached a screenshot showing these artifacts taken on a Mali-T628 device.
Has anyone else observed this? Anything in the sequence of operations described above that may be incompatible with TBDR?
Thanks!
Stephane
Thanks much gents,
Peter, we initially thought the same thing initially, however, after isolating the DOF shader and reducing it to just a simple blit, the issue persisted. This made it clear that the issue was outside the realm of shader numerical precision. As Sean observed, the artefacts do seem to appear screen wide, however, happened to be more apparent on the water where the color contrast was higher. Again thanks for your help on this. I'm happy to provide a reproducer if you need to further investigate internally.
Best,
> I'm happy to provide a reproducer if you need to further investigate internally.
Thanks for the offer, but I think we now know enough to say that we are probably doing what the spec intended. The issue occurs because you reuse the same texture as both input and output to an FBO. The relevant part of the spec which defines this as "undefined" is ...
http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.2.pdf
... section ...
4.4.3 Feedback Loops Between Textures and the Framebuffer.
Kind regards, Pete