System Environment: -------------------------- Platform: Ivybridge/Haswell Libdrm: (master)2.4.47 Mesa: (master)63974c0f5b26e369a790505af6820d4bbcf451b2 Xserver: (master)xorg-server-1.14.99.3-1-g7ecfab47eb221dbb996ea6c033348b8eceaeb893 Xf86_video_intel:(master)2.99.904-65-g11e8b299e11ff846e1c8090f7cbd34b2af850d85 Cairo: (master)98fef3cef2d0f7f463a2e4f9f1b35b09f7b6ea77 Libva: (staging)1a011ce5bb0b80506797a25a988854f3f81ce909 Libva_intel_driver:(staging)1cee858036a87837deddc87586701ed869f96261 Kernel: (drm-intel-nightly) 164a4cb4c1431a0689f85507868356fae24da638 Bug detailed description: ----------------------------- It fails on Ivybridge and Haswell with mesa master branch. It's not support on 9.2 branch. Following cases also fail with same bisect commit: spec_glsl-1.50_execution_geometry_clip-distance-bulk-copy spec_glsl-1.50_execution_geometry_clip-distance-in-bulk-read spec_glsl-1.50_execution_geometry_clip-distance-in-explicitly-sized spec_glsl-1.50_execution_geometry_clip-distance-in-param spec_glsl-1.50_execution_geometry_clip-distance-in-values spec_glsl-1.50_execution_geometry_core-inputs spec_glsl-1.50_execution_gs-redeclares-both-pervertex-blocks spec_glsl-1.50_execution_redeclare-pervertex-subset-vs-to-gs spec_glsl-1.50_execution_unsized-in-named-interface-block-gs spec_glsl-1.50_execution_unsized-in-named-interface-block-multiple spec_glsl-1.50_execution_unsized-in-unnamed-interface-block-gs spec_glsl-1.50_execution_unsized-in-unnamed-interface-block-multiple Bisect shows: 63974c0f5b26e369a790505af6820d4bbcf451b2 is the first bad commit. commit 63974c0f5b26e369a790505af6820d4bbcf451b2 Author: Ian Romanick <ian.d.romanick@intel.com> AuthorDate: Fri Oct 4 10:46:29 2013 -0700 Commit: Ian Romanick <ian.d.romanick@intel.com> CommitDate: Tue Oct 22 15:23:30 2013 -0700 glsl: Simplify the interface to link_invalidate_variable_locations The unit tests added in the previous commits prove some things about the state of some internal data structures. The most important of these is that all built-in input and output variables have explicit_location set. This means that link_invalidate_variable_locations doesn't need to know the range of non-generic shader inputs or outputs. It can simply reset location state depending on whether explicit_location is set. There are two additional assumptions that were already implicit in the code that comments now document. - ir_variable::is_unmatched_generic_inout is only used by the linker when connecting outputs from one shader stage to inputs of another shader stage. - Any varying that has explicit_location set must be a built-in. This will be true until GL_ARB_separate_shader_objects is supported. As a result, the input_base and output_base parameters to link_invalidate_variable_locations are no longer necessary, and the code for resetting locations and setting is_unmatched_generic_inout can be simplified. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> output: Probe color at (0,0) Expected: 0.000000 1.000000 0.000000 1.000000 Observed: 1.000000 0.000000 0.000000 1.000000 PIGLIT: {'result': 'fail' } Reproduce steps: ---------------------------- 1. xinit& 2. ./bin/shader_runner tests/spec/glsl-1.50/execution/geometry/core-inputs.shader_test -auto
Fixed by commit 172aec281d3d4eb0709977e0748d137e56aacd90 Author: Paul Berry <stereotype441@gmail.com> Date: Wed Oct 23 07:55:09 2013 -0700 glsl: set explicit_location correctly in lower_named_interface_blocks. When lower_named_interface_blocks lowers a built-in interface block member to an ir_variable, it needs to set explicit_location in the ir_variable. Otherwise the linker gets confused and treats the variable as a generic varying. Fixes the following piglit tests, which were regressed by commit 63974c0 (glsl: Simplify the interface to link_invalidate_variable_locations): - clip-distance-bulk-copy - clip-distance-in-bulk-read - clip-distance-in-explicitly-sized - clip-distance-in-param - clip-distance-in-values - core-inputs - gs-redeclares-both-pervertex-blocks - gs-redeclares-pervertex-in-only - redeclare-pervertex-subset-vs-to-gs - unsized-in-named-interface-block-gs - unsized-in-named-interface-block-multiple - unsized-in-unnamed-interface-block-gs - unsized-in-unnamed-interface-block-multiple Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70820 Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
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.