[Mesa-dev] [PATCH] i965: Fix Vertex URB Read Length calculation in 3DSTATE_SF on Gen6.

Martin Steigerwald Martin at lichtvoll.de
Sat Feb 2 12:22:55 PST 2013


Am Samstag, 2. Februar 2013 schrieb Kenneth Graunke:
> On 02/02/2013 04:50 AM, Martin Steigerwald wrote:
> > Am Samstag, 2. Februar 2013 schrieb Kenneth Graunke:
> >> The old calculation was off by one in certain cases.  The
> >> documentation contains a precise formula for how to calculate it, so
> >> just use that.
> >> 
> >> Fixes random corruption in Steam's Big Picture Mode, random corruption
> >> in PlaneShift (since the varying reordering code landed), and Piglit
> >> test ________.
> >> 
> >> NOTE: This is a candidate for all stable branches.
> >> 
> >> (The code needs to get cleaned up - the final result is quite ugly -
> >> but
> >> 
> >>   I wanted to put it on the list for the people working on these
> >>   bugs.)
> >> 
> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56920
> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60172
> > 
> > Tested-by: Martin Steigerwald <martin at lichtvoll.de>
> > 
> > Works just fine on Sandybridge HD 3000 here. Glitches are gone.
> > 
> > Thanks a lot. Great turn around time from bug report to fix!
> > 
> > Will add info to bug report in a moment.
> > 
> > 
> > For the fun of it I have another gfx glitch for you:
> > 
> > Bug 60185 - Planeshift: Another gfx glitch with some black area around
> > plants https://bugs.freedesktop.org/60185
> > 
> > 
> > This one has been there for longer. Maybe from beginning of playing the
> > game.
> > 
> > 
> > Aside from this I have some short hang of gfx output from time to time.
> > I have no idea on how to provide a meaning ful bug report about it
> > tough, cause I have no idea what triggers the bug. Its about 5 or 10
> > seconds and then everything fine again.
> 
> Crud.  When that happens, do you see any messages about 'GPU hung' in
> dmesg?  If I made it GPU hang, that's really bad, and means I probably
> didn't get this quite right yet...

Well its in no way proven that this related to any of your patches.
It can as well be an issue in mesa itself. I can try my current git
checkout without any of your patches to verify this.

About these messages: Uhm, bingo:

merkaba:~> zgrep -i "GPU hung" /var/log/kern.log*
/var/log/kern.log:Jan 29 22:29:55 merkaba kernel: [135984.784399] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log:Jan 29 22:39:57 merkaba kernel: [136585.410291] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log:Jan 30 23:27:48 merkaba kernel: [185805.988839] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log:Jan 30 23:40:06 merkaba kernel: [186542.314089] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log:Jan 31 23:11:30 merkaba kernel: [32648.445165] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log:Feb  2 13:32:06 merkaba kernel: [24379.258949] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 20 23:33:30 merkaba kernel: [ 1062.297925] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 22 22:21:05 merkaba kernel: [57847.627957] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 22 22:58:24 merkaba kernel: [60081.553464] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 23 21:02:19 merkaba kernel: [30148.749808] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 23 23:27:02 merkaba kernel: [ 5252.765052] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 23 23:32:29 merkaba kernel: [ 5579.015114] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:13:57 merkaba kernel: [  407.783167] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:18:36 merkaba kernel: [  686.150109] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:31:16 merkaba kernel: [ 1444.417436] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:35:46 merkaba kernel: [ 1713.813113] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:36:54 merkaba kernel: [ 1781.650791] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:39:04 merkaba kernel: [ 1911.355787] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:39:33 merkaba kernel: [ 1940.298327] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 24 22:41:04 merkaba kernel: [ 2031.091822] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 25 21:18:24 merkaba kernel: [40907.675253] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 25 22:14:44 merkaba kernel: [44280.005509] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 25 23:00:08 merkaba kernel: [46997.824337] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 25 23:49:02 merkaba kernel: [49925.166634] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 25 23:49:17 merkaba kernel: [49940.132591] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 16:32:48 merkaba kernel: [ 2600.771707] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 16:33:33 merkaba kernel: [ 2645.681582] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 17:01:50 merkaba kernel: [  604.318589] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 18:07:17 merkaba kernel: [ 4522.409144] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 18:42:07 merkaba kernel: [ 6607.675707] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:35:48 merkaba kernel: [13413.201351] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:54:34 merkaba kernel: [14536.638909] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:55:31 merkaba kernel: [14593.517573] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:56:58 merkaba kernel: [14680.312225] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:57:26 merkaba kernel: [14708.256679] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 20:57:34 merkaba kernel: [14716.242525] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 21:05:22 merkaba kernel: [15183.176821] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 21:43:06 merkaba kernel: [17442.039886] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 22:04:18 merkaba kernel: [18711.145174] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 22:40:58 merkaba kernel: [20906.162178] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 26 23:19:39 merkaba kernel: [23221.896723] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 27 00:24:49 merkaba kernel: [27123.030402] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 27 00:27:57 merkaba kernel: [27310.598462] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 27 00:48:26 merkaba kernel: [28536.801885] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 27 00:49:19 merkaba kernel: [28589.693612] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
/var/log/kern.log.1:Jan 27 00:51:19 merkaba kernel: [28709.417383] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung


Nothing in older logs it seems:

merkaba:~> ls -l /var/log/kern.log*
-rw-r----- 1 root adm  478589 Feb  2 20:55 /var/log/kern.log
-rw-r----- 1 root adm 1318618 Jan 27 12:14 /var/log/kern.log.1
-rw-r----- 1 root adm   52179 Jan 20 10:49 /var/log/kern.log.2.gz
-rw-r----- 1 root adm   63021 Jan 13 11:18 /var/log/kern.log.3.gz
-rw-r----- 1 root adm   51878 Jan  6 11:12 /var/log/kern.log.4.gz


So all I know is that it didn´t happen with Mesa 8.0.5. I think 20th of
January is about the time I started to test with Mesa 9.0.2 and then
9.2-devel + first your initial BLORB CopySubTexImage patch and then
now all four of these and your Fix Vertex URB one from this thread.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


More information about the mesa-dev mailing list