Summary: | [ILK IVB bisected]Ogles2conform GL/sin/sin_float_vert_xvary.test regressed | ||
---|---|---|---|
Product: | Mesa | Reporter: | lu hua <huax.lu> |
Component: | Drivers/DRI/i965 | Assignee: | Kenneth Graunke <kenneth> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | xunx.fang |
Version: | 8.0 | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
lu hua
2012-05-23 20:20:43 UTC
Following cases also fail and have same commit: GL_sin_sin_vec2_vert_xvary.test GL_sin_sin_vec3_vert_xvary.test It seems very weird that this only occurs on ILK. Ken, can you take a look? Hua, can you confirm this doesn't happen on SNB/IVB? It doesn't happen on sandybridge. Following cases fails on Ivybridge and have same bisect commit. GL_sin_sin_vec2_vert_xvary.test GL_sin_sin_vec3_vert_xvary.test I just ran all of the GL/sin cases on Ironlake, Sandybridge, and Ivybridge using Mesa 8009fca501a021cbaf. They all pass. I suspect it's something on your end. Does GTF complain or give any errors? Or does it just say that the test fails? Also, if you could paste the output of running 'ldd' on your 'GTF' binary, I'd appreciate that. I can verify that this test passes on all 8.0.x versions and master on SNB. I can verify that this test passes on 8.0.1 and master on IVB. I can verify that this test fails on 8.0.2 and 8.0.3 on IVB. My guess is that something isn't being handled correctly for loops on IVB on the 8.0 branch. In case it makes any difference, I saw this on 3.4.0-1.fc17.x86_64 kernel (on a fresh F17 install). The chipset was: 00:02.0 VGA compatible controller: Intel Corporation Device 0166 (rev 09) (prog-if 00 [VGA controller]) Subsystem: Hewlett-Packard Company Device 18df Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 46 Region 0: Memory at d0000000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at c0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at 2000 [size=64] Expansion ROM at <unassigned> [disabled] Capabilities: <access denied> Kernel driver in use: i915 Fixed. commit 1f4f86e951487345170d352bc0b8d137491379fe 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> (cherry picked from commit 5b83bdc154ec8d607a4c4d96171d0128e51abaec) Verified.It has been fixed on mesa 8.0 branch commit 1f4f86e951487345170d352bc0b8d137491379fe. |
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.