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
Hi Stephane,
Thanks for reporting.
> Anything in the sequence of operations described above that may be incompatible with TBDR?
No - what you describe should work fine (TBR should be transparent to the application).
A couple of initial questions to try and narrow down the area which is causing problems.
The fact you see an artifact in the bottom right corner is consistent with a lack of precision in the texture coordinates - so as a first step can you try using highp for the texture coordinate varyings if if you are not already.
If possible can you post a reproducing test case (Android binaries are fine) - it makes it much easier for us to investigate what issue you are running in to.
Thanks,Pete
Hi Peter,
Thanks for the response.
Here are the answers to your questions:
1. depth texture contents are sensible but contain the tiling artifacts.
2. 1280x800
3. 24/8 depth stencil.
4. texture coordinates were originally mediump. Promoting them to high had no effect.
We can definitely share a binary, however, as this product isn't released yet, we would need to setup a private share (also, the game is almost 1GB).
Thanks for the answers - one of our ecosystem guys will be in touch to see how we could exchange a reproducer.
One last question - you mention this is timing sensitive - if you do a glFinish after every call to eglSwapBuffers (i.e. serialize frames) does it go away?
Pete
View all questions in Graphics and Gaming forum