Summary: | [bisected i965]Oglc shad-compiler(advanced.TestLessThani) regressed | ||
---|---|---|---|
Product: | Mesa | Reporter: | lu hua <huax.lu> |
Component: | Drivers/DRI/i965 | Assignee: | Eric Anholt <eric> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | eric, idr, kenneth, xunx.fang |
Version: | git | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
lu hua
2012-04-12 20:13:11 UTC
Following cases fail on Ivybridge with mesa master branch, and fail with the same commit. Oglc cases: glsl-type-cast(basic.explicit.intToBool) glsl-type-cast(basic.explicit.uIntToBool) glsl-type-cast(basic.explicit.floatToBool) shad-compiler(advanced.TestLessThan) shad-compiler(advanced.TestLessThanEqual) Bisect shows 80ecb8f15b9ad7d6edcc85bd19f1867c368b09b6 is the first bad commit. Following cases fail on Ivybridge and Sandybridge with mesa master branch, and fail with the same commit. Oglc cases: glsl-type-cast(basic.explicit.intToBool) glsl-type-cast(basic.explicit.uIntToBool) glsl-type-cast(basic.explicit.floatToBool) shad-compiler(advanced.TestLessThan) shad-compiler(advanced.TestLessThanEqual) Bisect shows 80ecb8f15b9ad7d6edcc85bd19f1867c368b09b6 is the first bad commit. commit dc42910e98dc00760255cc4579da458de09175b9 Author: Eric Anholt <eric@anholt.net> Date: Mon Apr 23 16:48:09 2012 -0700 i965/fs: Fix regression in comparison handling from ANDs change. I had fixed up the logic ops for delayed ANDing, but not equality comparisons on bools. Fixes new piglit fs-bool-less-compare-true. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48629 Following cases still fail on IVB and SNB. shad-compiler(advanced.TestLessThanEquali) shad-compiler(advanced.TestGreaterThan) shad-compiler(advanced.TestGreaterThani) shad-compiler(advanced.TestGreaterThanEqual) shad-compiler(advanced.TestGreaterThanEquali) shad-compiler(advanced.TestEqualb) shad-compiler(advanced.TestNotEqual) shad-compiler(advanced.TestNotEquali) shad-compiler(advanced.TestNotEqualb) Following cases pass on IVB and SNB. glsl-type-cast(basic.explicit.intToBool) glsl-type-cast(basic.explicit.uIntToBool) glsl-type-cast(basic.explicit.floatToBool) This issue fixed on Ironlake with commit dc42910e98dc0. I suspect this may have been fixed by the commit below. Lu, can you verify? commit 5b83bdc154ec8d607a4c4d96171d0128e51abaec Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sat Jun 16 02:08:13 2012 -0700 i965: Fix brw_swap_cmod() for LE/GE comparisons. The idea here is to rewrite comparisons like 2 >= x with x <= 2; we want to simply exchange arguments, not negate the condition. If equality was part of the original comparison, it should remain part of the swapped version. This is the true cause of bug #50298. It didn't manifest itself on Sandybridge because we embed the conditional modifier in the IF instruction rather than emitting a CMP. All other platforms use CMP. It also didn't manifest itself on the master branch because commit be5f27a84d ("glsl: Refine the loop instruction counting.") papered over the problem. NOTE: This is a candidate for stable release branches. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50298 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Still seems broken to me. Issue still exist. Following cases still fail on IVB and SNB. shad-compiler(advanced.TestLessThanEquali) shad-compiler(advanced.TestGreaterThan) shad-compiler(advanced.TestGreaterThani) shad-compiler(advanced.TestGreaterThanEqual) shad-compiler(advanced.TestGreaterThanEquali) shad-compiler(advanced.TestEqualb) shad-compiler(advanced.TestNotEqual) shad-compiler(advanced.TestNotEquali) shad-compiler(advanced.TestNotEqualb) I can't reproduce this on Ivybridge...it seems to be working there. On Sandybridge, this is fixed by the following patch on the mailing list: http://lists.freedesktop.org/archives/mesa-dev/2012-September/027519.html (In reply to comment #7) > Issue still exist. > > Following cases still fail on IVB and SNB. > shad-compiler(advanced.TestLessThanEquali) > shad-compiler(advanced.TestGreaterThan) > shad-compiler(advanced.TestGreaterThani) > shad-compiler(advanced.TestGreaterThanEqual) > shad-compiler(advanced.TestGreaterThanEquali) > shad-compiler(advanced.TestEqualb) > shad-compiler(advanced.TestNotEqual) > shad-compiler(advanced.TestNotEquali) > shad-compiler(advanced.TestNotEqualb) Fixed on ivybridge. Still fails on sandybridge. Eric has NAK'd my fix and is writing a better one. Reassigning. commit 0482998ccc205a9d29953c7a8b33f41ae3584935 Author: Eric Anholt <eric@anholt.net> Date: Mon Nov 12 13:13:55 2012 -0800 i965/fs: Fix the gen6-specific if handling for 80ecb8f15b9ad7d6edc (In reply to comment #11) > commit 0482998ccc205a9d29953c7a8b33f41ae3584935 > Author: Eric Anholt <eric@anholt.net> > Date: Mon Nov 12 13:13:55 2012 -0800 > > i965/fs: Fix the gen6-specific if handling for 80ecb8f15b9ad7d6edc Fixed on master branch. It still fails on sandybridge with 9.0 branch. Eric/Ian, do we have plan to put the fix to 9.0 branch? If so we should keep this bug open, otherwise we can close it. Cherry-picked to the 9.0 branch: 457eab5a9bf563b54d46fa57cba513837224b120 It will be available in Mesa 9.0.3. Verified.Fixed on the latest 9.1 branch(commit:5b19631f7cffc0fb48). |
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.