The following commit series produced many regressions on older intel hardware: 8ac3b525c77cb5aae9e61bd984b78f6cbbffdc1c - 8cf84a7e470dbd3b46ce4081459d2ecfab22c2d5 Author: Alejandro Piñeiro <apinheiro@igalia.com> AuthorDate: Fri Oct 9 18:39:42 2015 +0200 Commit: Alejandro Piñeiro <apinheiro@igalia.com> CommitDate: Thu Oct 22 21:58:03 2015 +0200 i965/vec4: print predicate control at brw_vec4 dump_instruction v2: externalize pred_ctrl_align16 from brw_disasm.c instead of adding a copy on brw_vec4.c, as suggested by Matt Turner Reviewed-by: Matt Turner <mattst88@gmail.com> The failing tests: glsl-1_20.execution.clipping.vs-clip-vertex-homogeneity glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor-smooth-vertex glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-smooth-vertex glsl-1_10.execution.clipping.clip-plane-transformation pos_clipvert glsl-1_10.execution.interpolation.interpolation-none-other-flat-vertex glsl-1_10.execution.clipping.clip-plane-transformation clipvert_pos glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor-smooth-vertex glsl-1_20.execution.clipping.vs-clip-vertex-const-accept glsl-1_10.execution.clipping.clip-plane-transformation fixed glsl-1_20.execution.clipping.vs-clip-vertex-equal-to-position glsl-1_20.execution.clipping.vs-clip-vertex-enables glsl-1_20.execution.clipping.fixed-clip-enables !opengl 1_1.user-clip glsl-1_10.execution.interpolation.interpolation-none-other-smooth-vertex arb_vertex_program.clip-plane-transformation arb !opengl 1_0.gl-1.0-fpexceptions glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor-flat-vertex glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-flat-vertex glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-flat-vertex glsl-1_20.execution.clipping.vs-clip-vertex-different-from-position glsl-1_20.execution.clipping.vs-clip-vertex-const-reject glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-smooth-vertex glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor-flat-vertex
(In reply to Mark Janes from comment #0) > The following commit series produced many regressions on older intel > hardware: Unfourtunately, I don't have access to this hw at home. Will check if I can borrow this old hw from one of my colleagues. Sorry for the hassle. > 8ac3b525c77cb5aae9e61bd984b78f6cbbffdc1c - > 8cf84a7e470dbd3b46ce4081459d2ecfab22c2d5 > > Author: Alejandro Piñeiro <apinheiro@igalia.com> > AuthorDate: Fri Oct 9 18:39:42 2015 +0200 > Commit: Alejandro Piñeiro <apinheiro@igalia.com> > CommitDate: Thu Oct 22 21:58:03 2015 +0200 > > i965/vec4: print predicate control at brw_vec4 dump_instruction > > v2: externalize pred_ctrl_align16 from brw_disasm.c instead of adding > a copy on brw_vec4.c, as suggested by Matt Turner > > Reviewed-by: Matt Turner <mattst88@gmail.com> > > > The failing tests: > glsl-1_20.execution.clipping.vs-clip-vertex-homogeneity > glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor- > smooth-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-smooth- > vertex > glsl-1_10.execution.clipping.clip-plane-transformation pos_clipvert > glsl-1_10.execution.interpolation.interpolation-none-other-flat-vertex > glsl-1_10.execution.clipping.clip-plane-transformation clipvert_pos > glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor- > smooth-vertex > glsl-1_20.execution.clipping.vs-clip-vertex-const-accept > glsl-1_10.execution.clipping.clip-plane-transformation fixed > glsl-1_20.execution.clipping.vs-clip-vertex-equal-to-position > glsl-1_20.execution.clipping.vs-clip-vertex-enables > glsl-1_20.execution.clipping.fixed-clip-enables !opengl 1_1.user-clip > glsl-1_10.execution.interpolation.interpolation-none-other-smooth-vertex > arb_vertex_program.clip-plane-transformation arb !opengl > 1_0.gl-1.0-fpexceptions > glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor- > flat-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-flat-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-flat- > vertex > glsl-1_20.execution.clipping.vs-clip-vertex-different-from-position > glsl-1_20.execution.clipping.vs-clip-vertex-const-reject > glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-smooth- > vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor- > flat-vertex
(In reply to Alejandro Piñeiro (freenode IRC: apinheiro) from comment #1) > (In reply to Mark Janes from comment #0) > > The following commit series produced many regressions on older intel > > hardware: > > Unfourtunately, I don't have access to this hw at home. Will check if I can > borrow this old hw from one of my colleagues. I was able to get an ironlake device, and was able to confirm the regressions. Will start to work to see what happened.
FWIW, the commit causing this problem is the following one: commit a59359ecd22154cc2b3f88bb8c599f21af8a3934 Author: Alejandro Piñeiro <apinheiro@igalia.com> Date: Wed Oct 14 20:26:43 2015 +0200 i965/vec4: track and use independently each flag channel vec4_live_variables tracks now each flag channel independently, so vec4_dead_code_eliminate can update the writemask of null registers, based on which component are alive at the moment. This would allow vec4_cmod_propagation to optimize out several movs involving null registers. v2: added support to track each flag channel independently at vec4 live_variables, as v1 assumed that it was already doing it, as pointed by Francisco Jerez v3: general cleaningn after Matt Turner's review Reviewed-by: Matt Turner <mattst88@gmail.com> That was also the last one to be tested. Removing this commit remove the regressions. Will investigate a little this one.
Ok, I found the problem. Some comparisons are being wrongly removed with unpack_flags. When I added this function: bool reads_flag(unsigned c) { if (!reads_flag()) return false; switch (predicate) { case BRW_PREDICATE_NONE: return false; case BRW_PREDICATE_ALIGN16_REPLICATE_X: return c == 0; case BRW_PREDICATE_ALIGN16_REPLICATE_Y: return c == 1; case BRW_PREDICATE_ALIGN16_REPLICATE_Z: return c == 2; case BRW_PREDICATE_ALIGN16_REPLICATE_W: return c == 3; default: return true; } } I was only checking the predicate, but as the one without parameter shows: bool reads_flag() { return predicate || opcode == VS_OPCODE_UNPACK_FLAGS_SIMD4X2; } We also need to check the opcode. Adding that checks fixes the regressions I tested manually. I will do a full test and send a patch to the list soon.
(In reply to Mark Janes from comment #0) > The following commit series produced many regressions on older intel > hardware: > > 8ac3b525c77cb5aae9e61bd984b78f6cbbffdc1c - > 8cf84a7e470dbd3b46ce4081459d2ecfab22c2d5 > > Author: Alejandro Piñeiro <apinheiro@igalia.com> > AuthorDate: Fri Oct 9 18:39:42 2015 +0200 > Commit: Alejandro Piñeiro <apinheiro@igalia.com> > CommitDate: Thu Oct 22 21:58:03 2015 +0200 > > i965/vec4: print predicate control at brw_vec4 dump_instruction > > v2: externalize pred_ctrl_align16 from brw_disasm.c instead of adding > a copy on brw_vec4.c, as suggested by Matt Turner > > Reviewed-by: Matt Turner <mattst88@gmail.com> Patch that solved the bug just sent to the list: http://lists.freedesktop.org/archives/mesa-dev/2015-October/098207.html Having said so: > The failing tests: The title mentions 24 regressions, but only 21 are listed below. Additionally, as I mention on the email to freedesktop, on ILK I only detected 17. Could you confirm how many regressions my series introduced? > glsl-1_20.execution.clipping.vs-clip-vertex-homogeneity > glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor- > smooth-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-smooth- > vertex > glsl-1_10.execution.clipping.clip-plane-transformation pos_clipvert > glsl-1_10.execution.interpolation.interpolation-none-other-flat-vertex > glsl-1_10.execution.clipping.clip-plane-transformation clipvert_pos > glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor- > smooth-vertex > glsl-1_20.execution.clipping.vs-clip-vertex-const-accept > glsl-1_10.execution.clipping.clip-plane-transformation fixed > glsl-1_20.execution.clipping.vs-clip-vertex-equal-to-position > glsl-1_20.execution.clipping.vs-clip-vertex-enables > glsl-1_20.execution.clipping.fixed-clip-enables !opengl 1_1.user-clip > glsl-1_10.execution.interpolation.interpolation-none-other-smooth-vertex > arb_vertex_program.clip-plane-transformation arb !opengl > 1_0.gl-1.0-fpexceptions > glsl-1_10.execution.interpolation.interpolation-none-gl_frontsecondarycolor- > flat-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backcolor-flat-vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-flat- > vertex > glsl-1_20.execution.clipping.vs-clip-vertex-different-from-position > glsl-1_20.execution.clipping.vs-clip-vertex-const-reject > glsl-1_10.execution.interpolation.interpolation-none-gl_frontcolor-smooth- > vertex > glsl-1_10.execution.interpolation.interpolation-none-gl_backsecondarycolor- > flat-vertex
(In reply to Alejandro Piñeiro (freenode IRC: apinheiro) from comment #5) > (In reply to Mark Janes from comment #0) > > The following commit series produced many regressions on older intel > > hardware: > > > > 8ac3b525c77cb5aae9e61bd984b78f6cbbffdc1c - > > 8cf84a7e470dbd3b46ce4081459d2ecfab22c2d5 > > > > Author: Alejandro Piñeiro <apinheiro@igalia.com> > > AuthorDate: Fri Oct 9 18:39:42 2015 +0200 > > Commit: Alejandro Piñeiro <apinheiro@igalia.com> > > CommitDate: Thu Oct 22 21:58:03 2015 +0200 > > > > i965/vec4: print predicate control at brw_vec4 dump_instruction > > > > v2: externalize pred_ctrl_align16 from brw_disasm.c instead of adding > > a copy on brw_vec4.c, as suggested by Matt Turner > > > > Reviewed-by: Matt Turner <mattst88@gmail.com> > > Patch that solved the bug just sent to the list: > http://lists.freedesktop.org/archives/mesa-dev/2015-October/098207.html Kenneth Graunke just reviewed the patch. I have just pushed it. I hope this solves all the regressions in all hw.
all tests 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.