we have a Windows/DirectX11 2D Renderer that paints textured triangles to the screen from back to front. There is no face-culling or depth test activated.
Now on AMD GPUs it happens randomly that an already painted triangle disappears. That means it looks like something cleares the specific triangle out of the backbuffer after it has already been painted resulting in flickering graphics. It happens regardless how the triangle is painted (single Triangle, TriangleList, TriangleStrip).
When debugging with RenderDoc we found that it is complete random, which drawcall triggers this clearing. You can jump back and forth between any two drawcalls that come after the triangle has been painted and there is a chance that it will clear the triangle. The drawcalls that trigger the discarding are drawing on completely other areas on the screen/backbuffer. So they are not even overlapping the area that the affected triangle occupies.
We have already checked for any NaN
s or other uninitialized data being sent to the GPU, but couldn't find anything.
These artefacts do not appear on NVidia or Intel GPUs. Thanks for any ideas what we could look for to debug and fix this issue further.