GL_LINE_SMOOTH affects depth values

Hello,
I need a clarification with GL_LINE_SMOOTH.

Following situation:

  • I draw a line (linewidth 5) with activated GL_LINE_SMOOTH to the depth buffer.
  • Then I draw that line again (linewidth 10) with deactivated GL_LINE_SMOOTH to the color buffer with activated depth test(GL_LEQUAL).

-What I get in the color buffer is the line but with holes where parts of the line with linewidth 5 were rendered to the depth buffer.

-If I don’t use GL_LINE_SMOOTH at all, everything works as expected.

-If I use GL_GEQUAL for the depth test I see exactly the inverse parts of the line.

-I therefore suspect that the GL_LINE_SMOOTH option affects the depth values so that when I draw the wider line the depth test fails for some portions of the line.

Can anybody say something to this observation?
I know that linewidth > 1 are deprecated but it still should work in my opinion.

Nvidia Quadro K2000 driver version 369.49
Windows7 64 bit Professional

Thanks
Marc

What you experience is expected and falls under the invariance rules of the OpenGL specs.
See Appendix A Invariance in https://www.opengl.org/registry/doc/glspec45.core.pdf

Switching between aliased and anti-aliased lines will drastically change the rasterization method of lines and won’t even touch the same fragments. See chapter 14.5.2.2 Wide Lines in the above document.