System Environment: -------------------------- Arch: x86_64 Platform: Haswell Libdrm: (master)libdrm-2.4.45-3-g3586337f3703ce4833a375f66b08df064a1cec28 Mesa: (master)08f87ac333512a77a2701268dd98ef4274c34832 Xserver:(master)xorg-server-1.14.99.1-82-g7e97166c4fc38076b6224e4dbdd632b43444149f Xf86_video_intel:(master)2.21.7-3-gabe85adda51c58d3f3b9c5dea6cec4b13a65cdcd Libva: (staging)cc403954c93be77cb514c9d3836263f7d514a4f2 Kernel: (drm-intel-nightly) 86fccb424de5c6739e2edb4653f5823e3954b74b Bug detailed description: ------------------------- It fails on Haswell with mesa master branch. It doesn't happen on 9.1 branch. Following cases also fail with same bisect commit: Piglit: spec_ARB_texture_multisample_sample-position_4 spec_ARB_texture_multisample_sample-position_6 spec_ARB_texture_multisample_sample-position_8 spec_EXT_transform_feedback_alignment_0 spec_EXT_transform_feedback_alignment_12 spec_EXT_transform_feedback_alignment_4 spec_EXT_transform_feedback_alignment_8 spec_EXT_transform_feedback_buffer-usage spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[1]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[2]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[3]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[4]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[5]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[6]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[7]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipDistance[8]-no-subscript spec_EXT_transform_feedback_builtin-varyings_gl_ClipVertex spec_EXT_transform_feedback_builtin-varyings_gl_Color spec_EXT_transform_feedback_builtin-varyings_gl_FogFragCoord spec_EXT_transform_feedback_builtin-varyings_gl_PointSize spec_EXT_transform_feedback_builtin-varyings_gl_Position spec_EXT_transform_feedback_builtin-varyings_gl_SecondaryColor spec_EXT_transform_feedback_builtin-varyings_gl_TexCoord spec_EXT_transform_feedback_change-size_base-grow spec_EXT_transform_feedback_change-size_base-shrink spec_EXT_transform_feedback_change-size_offset-grow spec_EXT_transform_feedback_change-size_offset-shrink spec_EXT_transform_feedback_change-size_range-grow spec_EXT_transform_feedback_change-size_range-shrink spec_EXT_transform_feedback_immediate-reuse spec_EXT_transform_feedback_interleaved-attribs spec_EXT_transform_feedback_intervening-read_output spec_EXT_transform_feedback_intervening-read_prims_written spec_EXT_transform_feedback_max-varyings spec_EXT_transform_feedback_nonflat-integral spec_EXT_transform_feedback_order_arrays_lines spec_EXT_transform_feedback_order_arrays_points spec_EXT_transform_feedback_order_arrays_triangles spec_EXT_transform_feedback_order_elements_lines spec_EXT_transform_feedback_order_elements_points spec_EXT_transform_feedback_order_elements_triangles spec_EXT_transform_feedback_output-type_float spec_EXT_transform_feedback_output-type_float[2] spec_EXT_transform_feedback_output-type_float[2]-no-subscript spec_EXT_transform_feedback_output-type_int spec_EXT_transform_feedback_output-type_int[2] spec_EXT_transform_feedback_output-type_int[2]-no-subscript spec_EXT_transform_feedback_output-type_ivec2 spec_EXT_transform_feedback_output-type_ivec2[2] spec_EXT_transform_feedback_output-type_ivec2[2]-no-subscript spec_EXT_transform_feedback_output-type_ivec3 spec_EXT_transform_feedback_output-type_ivec3[2] spec_EXT_transform_feedback_output-type_ivec3[2]-no-subscript spec_EXT_transform_feedback_output-type_ivec4 spec_EXT_transform_feedback_output-type_ivec4[2] spec_EXT_transform_feedback_output-type_ivec4[2]-no-subscript spec_EXT_transform_feedback_output-type_mat2 spec_EXT_transform_feedback_output-type_mat2x3 spec_EXT_transform_feedback_output-type_mat2x3[2] spec_EXT_transform_feedback_output-type_mat2x3[2]-no-subscript spec_EXT_transform_feedback_output-type_mat2x4 spec_EXT_transform_feedback_output-type_mat2x4[2] spec_EXT_transform_feedback_output-type_mat2x4[2]-no-subscript spec_EXT_transform_feedback_output-type_mat2[2] spec_EXT_transform_feedback_output-type_mat2[2]-no-subscript spec_EXT_transform_feedback_output-type_mat3 spec_EXT_transform_feedback_output-type_mat3x2 spec_EXT_transform_feedback_output-type_mat3x2[2] spec_EXT_transform_feedback_output-type_mat3x2[2]-no-subscript spec_EXT_transform_feedback_output-type_mat3x4 spec_EXT_transform_feedback_output-type_mat3x4[2] spec_EXT_transform_feedback_output-type_mat3x4[2]-no-subscript spec_EXT_transform_feedback_output-type_mat3[2] spec_EXT_transform_feedback_output-type_mat3[2]-no-subscript spec_EXT_transform_feedback_output-type_mat4 spec_EXT_transform_feedback_output-type_mat4x2 spec_EXT_transform_feedback_output-type_mat4x2[2] spec_EXT_transform_feedback_output-type_mat4x2[2]-no-subscript spec_EXT_transform_feedback_output-type_mat4x3 spec_EXT_transform_feedback_output-type_mat4x3[2] spec_EXT_transform_feedback_output-type_mat4x3[2]-no-subscript spec_EXT_transform_feedback_output-type_mat4[2] spec_EXT_transform_feedback_output-type_mat4[2]-no-subscript spec_EXT_transform_feedback_output-type_uint spec_EXT_transform_feedback_output-type_uint[2] spec_EXT_transform_feedback_output-type_uint[2]-no-subscript spec_EXT_transform_feedback_output-type_uvec2 spec_EXT_transform_feedback_output-type_uvec2[2] spec_EXT_transform_feedback_output-type_uvec2[2]-no-subscript spec_EXT_transform_feedback_output-type_uvec3 spec_EXT_transform_feedback_output-type_uvec3[2] spec_EXT_transform_feedback_output-type_uvec3[2]-no-subscript spec_EXT_transform_feedback_output-type_uvec4 spec_EXT_transform_feedback_output-type_uvec4[2] spec_EXT_transform_feedback_output-type_uvec4[2]-no-subscript spec_EXT_transform_feedback_output-type_vec2 spec_EXT_transform_feedback_output-type_vec2[2] spec_EXT_transform_feedback_output-type_vec2[2]-no-subscript spec_EXT_transform_feedback_output-type_vec3 spec_EXT_transform_feedback_output-type_vec3[2] spec_EXT_transform_feedback_output-type_vec3[2]-no-subscript spec_EXT_transform_feedback_output-type_vec4 spec_EXT_transform_feedback_output-type_vec4[2] spec_EXT_transform_feedback_output-type_vec4[2]-no-subscript spec_EXT_transform_feedback_overflow-edge-cases spec_EXT_transform_feedback_position-readback-bufferbase spec_EXT_transform_feedback_position-readback-bufferbase-discard spec_EXT_transform_feedback_position-readback-bufferoffset spec_EXT_transform_feedback_position-readback-bufferoffset-discard spec_EXT_transform_feedback_position-readback-bufferrange spec_EXT_transform_feedback_position-readback-bufferrange-discard spec_EXT_transform_feedback_position-render-bufferbase spec_EXT_transform_feedback_position-render-bufferbase-discard spec_EXT_transform_feedback_position-render-bufferoffset spec_EXT_transform_feedback_position-render-bufferoffset-discard spec_EXT_transform_feedback_position-render-bufferrange spec_EXT_transform_feedback_position-render-bufferrange-discard spec_EXT_transform_feedback_query-primitives_written-bufferbase spec_EXT_transform_feedback_query-primitives_written-bufferbase-discard spec_EXT_transform_feedback_query-primitives_written-bufferoffset spec_EXT_transform_feedback_query-primitives_written-bufferoffset-discard spec_EXT_transform_feedback_query-primitives_written-bufferrange spec_EXT_transform_feedback_query-primitives_written-bufferrange-discard spec_EXT_transform_feedback_separate-attribs spec_EXT_transform_feedback_tessellation_lines_flat_first spec_EXT_transform_feedback_tessellation_lines_flat_last spec_EXT_transform_feedback_tessellation_lines_monochrome spec_EXT_transform_feedback_tessellation_lines_smooth spec_EXT_transform_feedback_tessellation_line_loop_flat_first spec_EXT_transform_feedback_tessellation_line_loop_flat_last spec_EXT_transform_feedback_tessellation_line_loop_monochrome spec_EXT_transform_feedback_tessellation_line_loop_smooth spec_EXT_transform_feedback_tessellation_line_strip_flat_first spec_EXT_transform_feedback_tessellation_line_strip_flat_last spec_EXT_transform_feedback_tessellation_line_strip_monochrome spec_EXT_transform_feedback_tessellation_line_strip_smooth spec_EXT_transform_feedback_tessellation_points_flat_first spec_EXT_transform_feedback_tessellation_points_flat_last spec_EXT_transform_feedback_tessellation_points_monochrome spec_EXT_transform_feedback_tessellation_points_smooth spec_EXT_transform_feedback_tessellation_polygon_flat_first spec_EXT_transform_feedback_tessellation_polygon_flat_last spec_EXT_transform_feedback_tessellation_polygon_monochrome spec_EXT_transform_feedback_tessellation_polygon_smooth spec_EXT_transform_feedback_tessellation_polygon_wireframe spec_EXT_transform_feedback_tessellation_quads_flat_first spec_EXT_transform_feedback_tessellation_quads_flat_last spec_EXT_transform_feedback_tessellation_quads_monochrome spec_EXT_transform_feedback_tessellation_quads_smooth spec_EXT_transform_feedback_tessellation_quads_wireframe spec_EXT_transform_feedback_tessellation_quad_strip_flat_first spec_EXT_transform_feedback_tessellation_quad_strip_flat_last spec_EXT_transform_feedback_tessellation_quad_strip_monochrome spec_EXT_transform_feedback_tessellation_quad_strip_smooth spec_EXT_transform_feedback_tessellation_quad_strip_wireframe spec_EXT_transform_feedback_tessellation_triangles_flat_first spec_EXT_transform_feedback_tessellation_triangles_flat_last spec_EXT_transform_feedback_tessellation_triangles_monochrome spec_EXT_transform_feedback_tessellation_triangles_smooth spec_EXT_transform_feedback_tessellation_triangles_wireframe spec_EXT_transform_feedback_tessellation_triangle_fan_flat_last spec_EXT_transform_feedback_tessellation_triangle_fan_monochrome spec_EXT_transform_feedback_tessellation_triangle_fan_smooth spec_EXT_transform_feedback_tessellation_triangle_fan_wireframe spec_EXT_transform_feedback_tessellation_triangle_strip_flat_first spec_EXT_transform_feedback_tessellation_triangle_strip_flat_last spec_EXT_transform_feedback_tessellation_triangle_strip_monochrome spec_EXT_transform_feedback_tessellation_triangle_strip_smooth spec_EXT_transform_feedback_tessellation_triangle_strip_wireframe spec_glsl-1.30_execution_isinf-and-isnan_vs_xfb spec_glsl-1.40_execution_tf-no-position spec_OpenGL_3.1_primitive-restart-xfb_flush spec_OpenGL_3.1_primitive-restart-xfb_written Ogles3conform GL3Tests_sync_sync_functionality_clientwaitsync_flush.test GL3Tests_transform_feedback2_transform_feedback2_basic.test GL3Tests_transform_feedback2_transform_feedback2_framebuffer.test GL3Tests_transform_feedback2_transform_feedback2_states.test GL3Tests_transform_feedback2_transform_feedback2_two_buffers.test GL3Tests_transform_feedback_transform_feedback_basic_outline.test GL3Tests_transform_feedback_transform_feedback_builtins.test GL3Tests_transform_feedback_transform_feedback_builtin_type.test GL3Tests_transform_feedback_transform_feedback_draw.test GL3Tests_transform_feedback_transform_feedback_interleaved.test GL3Tests_transform_feedback_transform_feedback_max_interleaved.test GL3Tests_transform_feedback_transform_feedback_max_separate.test GL3Tests_transform_feedback_transform_feedback_misc.test GL3Tests_transform_feedback_transform_feedback_query_objects.test GL3Tests_transform_feedback_transform_feedback_verify_buffer.test GL3Tests_vertex_type_2_10_10_10_rev_vertex_type_2_10_10_10_rev_conversion.test GL3Tests_vertex_type_2_10_10_10_rev_vertex_type_2_10_10_10_rev_stride_pointer.test Bisect shows:eaa6fbe6d54dc99efac4ab8e800edef65ce8220d is the first bad commit. commit eaa6fbe6d54dc99efac4ab8e800edef65ce8220d Author: Kenneth Graunke <kenneth@whitecape.org> AuthorDate: Fri May 17 10:55:35 2013 -0700 Commit: Kenneth Graunke <kenneth@whitecape.org> CommitDate: Tue May 21 13:29:22 2013 -0700 i965: Stop using the kernel SOL reset feature. We can just do it ourselves with MI_LOAD_REGISTER_IMM. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Paul Berry <stereotype441@gmail.com> output: sample 0 position incorrect (x axis): observed -0.031250, expected 0.375000 sample 0 position incorrect (y axis): observed -0.031250, expected 0.125000 sample 1 position incorrect (x axis): observed -0.031250, expected 0.875000 sample 1 position incorrect (y axis): observed -0.031250, expected 0.375000 PIGLIT: {'result': 'fail' } Reproduce steps: ---------------- 1. xinit 2. ./bin/arb_texture_multisample-sample-position 2 -auto -fbo
Crap. Daniel...we could really use the ability to do this legitimately... Might have to revert this for now...sigh.
The fix wasn't nearly as bad as I feared: http://lists.freedesktop.org/archives/mesa-dev/2013-May/039713.html We can just go back to using the kernel SOL reset feature, but in a simpler fashion than before. MI_STORE_REGISTER_MEM seems to work, so we don't need to revert everything. On my Haswell system, that fixes every regression caused by the bisected commit. Also, thanks for the report! Sorry for not catching this earlier.
Fixed by: commit 90b46f2d5ac336f63fff9b4681216a99e4163893 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Thu May 23 20:19:19 2013 -0700 i965: Go back to using the kernel SOL reset feature. It turns out the MI_LOAD_REGISTER_IMM approach doesn't work on Haswell, and regressed essentially all the transform feedback Piglit tests. This morally reverts eaa6fbe6d54dc99efac4ab8e800edef65ce8220d. However, the code is still simpler than it was. On BeginTransformFeedback, we simply flush the batch and set the SOL reset flag so that the next batch will start with zeroed offsets. There's still no software counting. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64887 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> This regression only existed on master, so there's nothing to backport.
My apologies...that should have been: commit 062317d6671ed42ed10b24ee9d3df87c1dab279d Author: Kenneth Graunke <kenneth@whitecape.org> Date: Thu May 23 20:19:19 2013 -0700 i965: Go back to using the kernel SOL reset feature.
Verified.Fixed.
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.