Bug 35730

Summary: [SNB bisected]3 shad-interactions subcases failed on GT1, with VS threads increasing
Product: Mesa Reporter: fangxun <xunx.fang>
Component: Drivers/DRI/i965Assignee: Zou Nan hai <nanhai.zou>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: high CC: idr, kenneth, nanhai.zou
Version: git   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description fangxun 2011-03-27 18:40:11 UTC
System Environment:
--------------------------
Arch:           x86_64
Platform:       sugarbay(rev09 GT1)
Libdrm:         (master)2.4.24-7-gfd3ed34a2070fca3804baf54ece40d0bc2666226
Mesa:           (7.10)1efb7428ede38146e02dbaf16b8b71ed27b4cf00
Xserver:        (master)xorg-server-1.10.0
Xf86_video_intel:   (master)2.14.901-7-g86f23f21ab57fcbc031bcd2b8f432a08ff4cc320
Kernel: (drm-intel-fixes)f0c860246472248a534656d6cdbed5a36d1feb2e


Bug detailed description:
-------------------------
3 shad-interactions subcases regressed: advanced.TestUniformMat2, advanced.TestUniformMat3, advanced.TestUniformMat4. 
Bisect shows c21a44463a402a886bf58d0e689d5a098eda1ff4 is the first bad commit.  
commit c21a44463a402a886bf58d0e689d5a098eda1ff4
Author:     Zou Nan hai <nanhai.zou@intel.com>
AuthorDate: Tue Mar 1 10:39:35 2011 +0800
Commit:     Ian Romanick <ian.d.romanick@intel.com>
CommitDate: Thu Mar 24 13:40:25 2011 -0700

    i965: bump VS thread number to 60 on SNB

    Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
    (cherry picked from commit 6c324777a685d28d0a81d23157e4863240552999)
Comment 1 Ian Romanick 2011-03-29 11:48:00 UTC
According to Chris Wilson, max VS threads is only 24 on GT1.  See:  http://lists.freedesktop.org/archives/intel-gfx/2011-March/009828.html.  If that is true, and it seems believable, the fix is pretty clear.
Comment 2 Eric Anholt 2011-03-29 16:30:19 UTC
patch to test:
http://lists.freedesktop.org/archives/intel-gfx/2011-March/009853.html
Comment 3 fangxun 2011-03-29 20:48:58 UTC
Still failed with the patch.
Comment 4 Ian Romanick 2011-04-05 16:21:37 UTC
I have reverted the patch from 7.10.  I'm leaving the bug open because it still exists on master.  This needs a real fix ASAP.

commit 50dccfdbefcf0a5c35668287508916a3a74da4c8
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Tue Apr 5 16:14:39 2011 -0700

    Revert "i965: bump VS thread number to 60 on SNB"
    
    Increasing the number of VS threads beyond 1 causes some regressions
    in vertex shader tests on Sugar Bay GT1 systems.
    
    This reverts commit c21a44463a402a886bf58d0e689d5a098eda1ff4.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=35730
Comment 5 Ian Romanick 2011-04-12 15:39:38 UTC
This should be fixed on master by:

commit a019dd0d6e5bba00e8ee7818e004ee42ca507102
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Sun Apr 3 00:57:30 2011 -0700

    i965: Fix null register use in Sandybridge implied move resolution.
    
    Fixes regressions caused by commit 9a21bc6401, namely GPU hangs when
    running gnome-shell or compiz (Mesa bugs #35820 and #35853).
    
    I incorrectly refactored the case that dealt with ARF_NULL; even in that
    case, the source register needs to be changed to the MRF.
    
    NOTE: This is a candidate for the 7.10 branch (if 9a21bc6401 is
    cherry-picked, take this one too).

commit 9d60a7ce08a67eb8b79c60f829d090ba4a37ed7e
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Tue Mar 29 05:49:40 2011 -0700

    i965: Resolve implied moves in brw_dp_READ_4_vs_relative.
    
    Fixes piglit test glsl-vs-arrays-3 on Sandybridge, as well as garbage
    rendering in 3DMarkMobileES 2.0's Taiji demo and GLBenchmark 2.0's
    Egypt and PRO demos.
    
    NOTE: This a candidate for stable release branches.  It depends on
    commit 9a21bc640188e4078075b9f8e6701853a4f0bbe4.

commit 9a21bc640188e4078075b9f8e6701853a4f0bbe4
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed Mar 16 14:09:17 2011 -0700

    i965: Refactor Sandybridge implied move handling.
    
    This was open-coded in three different places, and more are necessary.
    Extract this into a function so it can be reused.
    
    Unfortunately, not all variations were the same: in particular, one set
    compression control and checked that the source register was not
    ARF_NULL.  This seemed like a good idea, so all cases now do so.
Comment 6 fangxun 2011-04-12 21:23:25 UTC
Verified with mesa master commit: a26121f37530619610a78a5fbe5ef87e44047fda

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.