Quick answer: Your game has z-fighting because two surfaces are at the same or nearly-the-same depth and the depth buffer lacks the precision to distinguish which is in front, so the GPU inconsistently picks one then the other, producing flickering. It happens with coplanar surfaces, and it's worse far from the camera (where depth precision is lower) and when the near/far clip planes are set to a very wide range that wastes precision.

Z-fighting is a specific, common rendering artifact: surfaces that overlap at the same depth shimmer and flicker as the renderer alternates which to draw on top. It's caused by limited depth precision, and once you understand that, the fixes follow directly.

What Causes Z-Fighting

The GPU uses a depth buffer to decide which surface is in front at each pixel, but it has finite precision. When two surfaces are at the same depth, or so close that their depth values fall within the same precision step, the GPU can't reliably tell which is nearer, so it inconsistently picks one then the other across pixels and frames, the flickering of z-fighting. This happens with coplanar or nearly-coplanar surfaces (two faces at the same position, a decal flush on a wall, overlapping geometry).

Depth precision is unevenly distributed, much higher near the camera and lower far away, so z-fighting is worse for distant surfaces. And the near/far clip plane ratio strongly affects precision: a very close near plane with a very far far plane wastes precision, making z-fighting more likely.

How to Diagnose and Fix It

Z-fighting is visually distinctive, specific surfaces flickering/shimmering where they overlap, especially at distance or where geometry is coplanar. Identify the fighting surfaces (at the same/nearly-same depth), check whether it's worse far from the camera (a precision clue), and look at your near/far clip plane settings. It's a content/precision issue, usually reproducible directly.

Fix by separating the surfaces (offset coplanar ones so their depths differ), improving depth precision (the highest-leverage tweak is tightening your near and far clip planes, push the near plane out, pull the far plane in, since a smaller ratio dramatically improves precision), and using depth bias where surfaces must be very close. See our guide on fixing z-fighting.

Z-fighting is two surfaces too close for the depth buffer to separate. Offset coplanar surfaces, and tighten your near/far clip planes, the biggest precision win, plus depth bias where needed.