Colourless said:Need to remember you can get higher precision in the output pixels than the vertices because the pixels use interpolated values from the vertices.
Yes, but that's usually not relevant. We're not interested in "smooth" depth buffer values, as one would be in for instance the texture filtering case, where the precision of the stored values often isn't that important but rather at what precision they are interpolated. But for depth testing it's not so much the interpolated precision that matters but the computed positions of the output vertices. Good interpolated precision will for instance not help nearly coplanar surfaces if the vertices you're interpolating between have poor precision.