[Bug 94900] HD6950 GPU lockup loop with various steam games (octodad[always], saints row 4[always], dead island[always], grid autosport[sometimes])

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Jul 23 08:43:33 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=94900

Heiko <lil_tux at web.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lil_tux at web.de

--- Comment #21 from Heiko <lil_tux at web.de> ---
Created attachment 125271
  --> https://bugs.freedesktop.org/attachment.cgi?id=125271&action=edit
Simple workaround

'Fixes' the octodad trace for me. That stops sb from using fold_assoc to fold
ADD_INT(ADD_INT(x, 1), 2) for scalar registers.

Problem is, that sb currently optimizes away the loop counter node, due to
optimizing its reference out of another node and marking it as unused/dead,
finally nuking the counter increment as well. Thus the loop break condition is
never met and the gpu hangs due to an endless loop, and finally, gets reset.

If mesa is compiled in debug mode, sb checks the shader it would put out and
fails assertions with unset registers... just being the loop counter of the
three loops in the octodad case (shader 70).

On a side note, this scenario might be already known for phi nodes, as the
comment in sb_expr.cpp:expr_handler::fold() mentions similar issues...

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20160723/d30d87b6/attachment.html>


More information about the dri-devel mailing list