System Environment: -------------------------- Platform: Ivybridge Libdrm: (master)2.4.47 Mesa: (master)4ef1c8fb4c0ae8d0fa2a0e4311ef63255d8485f0 Xserver: (master)xorg-server-1.14.99.2-14-g7cf1b595c8c8f9776a39559d2878cf90af3f2859 Xf86_video_intel:(master)2.99.904-32-gec0866e86d365ae3fd9790b1b263d49fc4981220 Cairo: (master)6f05ecf488314e4b0c6c6b0110963c449bebe7d7 Libva: (staging)1a011ce5bb0b80506797a25a988854f3f81ce909 Libva_intel_driver:(staging)1cee858036a87837deddc87586701ed869f96261 Kernel: (drm-intel-nightly) 164a4cb4c1431a0689f85507868356fae24da638 Bug detailed description: ----------------------------- It fails on Ivybridge with mesa master branch, and works well on 9.2 branch. Following cases also fail: spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_LINES_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_LINE_LOOP_ffs spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_LINE_LOOP_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_LINE_STRIP_ADJACENCY_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_LINE_STRIP_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLES_ADJACENCY_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLES_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLE_FAN_ffs spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLE_FAN_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLE_STRIP_ADJACENCY_other spec_glsl-1.50_glsl-1.50-geometry-primitive-id-restart_GL_TRIANGLE_STRIP_other The latest good commit:e6c2afa9ceacc188690deba9da7b46bf1a0a9027 The latest bad commit:4ef1c8fb4c0ae8d0fa2a0e4311ef63255d8485f0 output: Expected primitive 1 to have gl_PrimitiveIDIn = 1, got 0 instead Expected primitive 2 to have gl_PrimitiveIDIn = 2, got 0 instead Expected primitive 3 to have gl_PrimitiveIDIn = 3, got 0 instead Expected primitive 4 to have gl_PrimitiveIDIn = 4, got 0 instead Expected primitive 5 to have gl_PrimitiveIDIn = 5, got 1 instead Expected primitive 6 to have gl_PrimitiveIDIn = 6, got 0 instead Expected primitive 7 to have gl_PrimitiveIDIn = 7, got 1 instead Expected primitive 8 to have gl_PrimitiveIDIn = 8, got 0 instead Expected primitive 9 to have gl_PrimitiveIDIn = 9, got 1 instead Expected primitive 10 to have gl_PrimitiveIDIn = 10, got 0 instead Expected primitive 11 to have gl_PrimitiveIDIn = 11, got 1 instead Expected primitive 12 to have gl_PrimitiveIDIn = 12, got 0 instead Expected primitive 13 to have gl_PrimitiveIDIn = 13, got 1 instead Expected primitive 14 to have gl_PrimitiveIDIn = 14, got 2 instead PIGLIT: {'result': 'fail' } Reproduce steps: ---------------------------- 1. xinit& 2. bin/glsl-1.50-geometry-primitive-id-restart GL_LINES_ADJACENCY other -auto -fbo
It can't possibly "work well" on the 9.2 branch, since Mesa 9.2 doesn't implement GLSL 1.50. Reassigning to Paul.
The following patches should fix all of the failing cases except for the GL_LINE_LOOP cases: - vbo: Make vbo_sw_primitive_restart optionally count primitives. (http://lists.freedesktop.org/archives/mesa-dev/2013-October/046184.html) - i965/gs: Fix gl_PrimitiveIDIn when using SW primitive restart. (http://lists.freedesktop.org/archives/mesa-dev/2013-October/046185.html) These patches were sent to the mailing list on October 11 and are awaiting review. Unfortunately, the GL_LINE_LOOP cases are not easily fixable due to a hardware limitation: the hardware converts GL_LINE_LOOP primitives to GL_LINE_STRIP primitives (by repeating the first vertex at the end of the loop) *before* dangling vertex removal. As a result, a line loop consisting of a single vertex causes a single primitive to be output (a line going from that vertex to itself), whereas the GL spec says that it should cause zero primitives to be output. I don't believe this problem is worth fixing.
On Haswell, all of these pass. On Ivybridge, it sounds like we've fixed everything except the line loop cases. Based on Paul's explanation of the problem, it doesn't sound worth fixing. The hardware works a little differently than GL expects, in a degenerate case that no real application will hit.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.