From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 94900] HD6950 GPU lockup loop with various steam games (octodad[always], saints row 4[always], dead island[always], grid autosport[sometimes])
Date: Wed, 28 Sep 2016 17:26:26 +0000 [thread overview]
Message-ID: <bug-94900-502-rzEY627D7p@http.bugs.freedesktop.org/> (raw)
In-Reply-To: <bug-94900-502@http.bugs.freedesktop.org/>
[-- Attachment #1.1: Type: text/plain, Size: 2452 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=94900
Heiko <lil_tux@web.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #125271|0 |1
is obsolete| |
--- Comment #28 from Heiko <lil_tux@web.de> ---
Created attachment 126832
--> https://bugs.freedesktop.org/attachment.cgi?id=126832&action=edit
Possible fix for the lockups
The more I look at the sb code the more I dislike it :/ Anyhow, looks like the
GCM pass is b0rked and doesn't like unused ops at all.
The problem with that octodad trace is that with a pass through fold_assoc() an
ADD_INT op becomes unused, but isn't removed prior to GCM. GCM then moves it up
to the front of the shader (because there are no users), where the op's src
values aren't defined (in that particular case the loop counter variable). GCM
also moves ops up, if the usage count isn't fulfilled yet. Well that's when
things get really broken, since it seems to move the loop counter -- or at
least the initializer -- to fulfill the usage count. And well, then the GPU
finally locks up on the shader (or if mesa is compiled in debug mode, sb shows
unset registers), probably due to endlessly looping.
I tried to fix GCM, but everytime I thought I've did the right thing, I got
either unscheduled ops or wrong levels for the basic blocks. Also, the
DONT_HOIST stuff doesn't really seem to work that well either.
So I decided to fix the input feeded into the GCM pass, by iteratively removing
all unused ops in dce_cleanup. This could also be reducing amount of
instructions, that weren't actually removed before. Also optimized valtable's
use_count(), which gets called 1500+ times for the octodad trace and did
iterate over the whole use_info list every time...
The (untidied) patch fixes octodad for me. Would be nice, if someone could test
the other problematic games (be sure to test with a debug build, to get an
exception rather than a lockup). If it works there as well, I'd clean things
up.
@Marek, what's the best/usual way to test for performance/instruction count in
mesa changes. I noticed those 'helped'/'hurt'/'+-%' infos and some runtime
numbers in commit messages, but I don't know how they are produced :/
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 4222 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-09-28 17:26 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-11 21:41 [Bug 94900] Regression: HD6950 GPU lockup with octodad: dadliest catch bugzilla-daemon
2016-04-11 22:52 ` [Bug 94900] " bugzilla-daemon
2016-04-11 22:53 ` bugzilla-daemon
2016-04-15 3:49 ` bugzilla-daemon
2016-05-03 11:05 ` [Bug 94900] HD6950 GPU lockup with various steam games (octodad, saints row 4) bugzilla-daemon
2016-05-03 11:06 ` bugzilla-daemon
2016-05-04 21:23 ` bugzilla-daemon
2016-05-06 11:37 ` bugzilla-daemon
2016-05-06 11:38 ` bugzilla-daemon
2016-05-06 19:30 ` bugzilla-daemon
2016-05-06 20:32 ` bugzilla-daemon
2016-05-16 9:05 ` bugzilla-daemon
2016-05-16 9:05 ` [Bug 94900] HD6950 GPU lockup loop with various steam games (octodad, saints row 4, grid autosport) bugzilla-daemon
2016-05-16 10:00 ` bugzilla-daemon
2016-06-06 11:57 ` bugzilla-daemon
2016-06-06 11:58 ` bugzilla-daemon
2016-07-12 22:21 ` bugzilla-daemon
2016-07-13 12:06 ` bugzilla-daemon
2016-07-16 1:50 ` bugzilla-daemon
2016-07-16 10:51 ` bugzilla-daemon
2016-07-16 13:53 ` bugzilla-daemon
2016-07-16 14:18 ` [Bug 94900] HD6950 GPU lockup loop with various steam games (octodad, saints row 4, dead island, " bugzilla-daemon
2016-07-16 16:20 ` bugzilla-daemon
2016-07-16 16:20 ` bugzilla-daemon
2016-07-16 16:26 ` [Bug 94900] HD6950 GPU lockup loop with various steam games (octodad[always], saints row 4[always], dead island[always], grid autosport[sometimes]) bugzilla-daemon
2016-07-17 21:36 ` bugzilla-daemon
2016-07-18 9:04 ` bugzilla-daemon
2016-07-18 10:26 ` bugzilla-daemon
2016-07-23 8:43 ` bugzilla-daemon
2016-09-02 8:11 ` bugzilla-daemon
2016-09-09 4:52 ` bugzilla-daemon
2016-09-17 20:23 ` bugzilla-daemon
2016-09-18 15:37 ` bugzilla-daemon
2016-09-22 14:59 ` bugzilla-daemon
2016-09-23 7:35 ` bugzilla-daemon
2016-09-28 17:26 ` bugzilla-daemon [this message]
2016-09-28 17:40 ` bugzilla-daemon
2016-10-02 10:07 ` bugzilla-daemon
2016-10-02 10:13 ` bugzilla-daemon
2016-10-02 10:29 ` bugzilla-daemon
2016-10-04 15:47 ` bugzilla-daemon
2016-10-30 9:11 ` bugzilla-daemon
2016-12-16 13:32 ` bugzilla-daemon
2016-12-22 8:37 ` bugzilla-daemon
2017-01-12 10:53 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-94900-502-rzEY627D7p@http.bugs.freedesktop.org/ \
--to=bugzilla-daemon@freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox