Summary: | [regression] dEQP: "Detected variance between two invariant values" | ||
---|---|---|---|
Product: | Mesa | Reporter: | Brian Wilson <brian.wilson> |
Component: | Drivers/DRI/i965 | Assignee: | Kristian Høgsberg <krh> |
Status: | RESOLVED DUPLICATE | QA Contact: | Intel 3D Bugs Mailing List <intel-3d-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 10.6 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Brian Wilson
2015-06-08 19:09:03 UTC
These all pass for me with Mesa master. They actually pass for me with c2a0600d5b0645533ba442b5ab879b23c2564a4d, though, too...so I guess I'm just not able to reproduce this. I can reproduce this bug by BSW (VGA compatible controller: Intel Corporation Device 22b1 (rev 21)) Kernel:4.1.0-rc7_kcloud_1845ca_20150612+ Bisect shows: ee5fb8d1ba7f50ed94e1a34fa0f6e15a0588145e is the first bad commit. commit ee5fb8d1ba7f50ed94e1a34fa0f6e15a0588145e author Kristian Høgsberg <krh@bitplanet.net> 2014-10-21 06:29:41 (GMT) committer Kristian Høgsberg <krh@bitplanet.net> 2014-12-10 20:29:27 (GMT) commit ee5fb8d1ba7f50ed94e1a34fa0f6e15a0588145e (patch) tree 303ad7ac28769482c37c27fdc448231f9cd9c052 parent 7ff457b93028d1884c7952080edd919008edf141 (diff) i965: Generate vs code using scalar backend for BDW+ With everything in place, we can now use the scalar backend compiler for vertex shaders on BDW+. We make scalar vertex shaders the default on BDW+ but add a new vec4vs debug option to force the vec4 backend. No piglit regressions. Performance impact is minimal, I see a ~1.5 improvement on the T-Rex GLBenchmark case, but in general it's in the noise. Some of our internal synthetic, vs bounded benchmarks show great improvement, 20%-40% in some cases, but real-world cases are mostly unaffected. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Kristian Kristensen looked into this and reported the following: Ok, know what's going on with this bug now. The test tests the invariance keyword by trying to provoke rounding errors coming from different code paths computing the same result. Different levels of optimization may reuse common subexpression results or rewrite a mul+add to a mad, resulting in the same GLSL code computing getting compiled to different hw instructions. A driver that support the GLSL invariant keyword will make sure that different shaders always compute the same value the same way. On drivers (like mesa) that don't support invariance, the test may still pass, and as such, the fact that the test passed in the past doesn't make this a regression. When we switched mesa to use SIMD8 VS (the commit in quesstion), we started using a different optimizer for the vertex shader code, which optimizes the shaders enough that we get different results for the depth values. In short: not a regression, the test passed previously because it's hard to consistently trigger the error condition. Kristian |
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.