<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:jmcasanova@igalia.com" title="Chema Casanova <jmcasanova@igalia.com>"> <span class="fn">Chema Casanova</span></a>
</span> changed
<a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - piglit.spec.arb_compute_shader.linker.bug-93840 fails"
href="https://bugs.freedesktop.org/show_bug.cgi?id=107193">bug 107193</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>ASSIGNED
</td>
<td>RESOLVED
</td>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>---
</td>
<td>FIXED
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - piglit.spec.arb_compute_shader.linker.bug-93840 fails"
href="https://bugs.freedesktop.org/show_bug.cgi?id=107193#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - piglit.spec.arb_compute_shader.linker.bug-93840 fails"
href="https://bugs.freedesktop.org/show_bug.cgi?id=107193">bug 107193</a>
from <span class="vcard"><a class="email" href="mailto:jmcasanova@igalia.com" title="Chema Casanova <jmcasanova@igalia.com>"> <span class="fn">Chema Casanova</span></a>
</span></b>
<pre>Fixed by:
commit 62f37ee53d9d5388eecef94369893b5467349306
Author: Jose Maria Casanova Crespo <<a href="mailto:jmcasanova@igalia.com">jmcasanova@igalia.com</a>>
Date: Wed Jul 11 11:19:20 2018 +0200
i965/fs: unspills shoudn't use grf127 as dest since Gen8+
At 232ed8980217dd65ab0925df28156f565b94b2e5 "i965/fs: Register allocator
shoudn't use grf127 for sends dest" we didn't take into account the case
of SEND instructions that are not send_from_grf. But since Gen7+ although
the backend still uses MRFs internally for sends they are finally
assigned to a GRFs.
In the case of unspills the backend assigns directly as source its
destination because it is suppose to be available. So we always have a
source-destination overlap. If the reg_allocator assigns registers that
include the grf127 we fail the validation rule that affects Gen8+
"r127 must not be used for return address when there is a src and dest
overlap in send instruction."
So this patch activates the grf127_send_hack_node for Gen8+ and if we
have any register spilled we add interferences to the destination of
the unspill operations.
We also need to avoid that opt_bank_conflicts() optimization, that runs
after the register allocation, doesn't move things around, causing the
grf127 to be used in the condition we were avoiding.
Fixes piglit test
tests/spec/arb_compute_shader/linker/bug-93840.shader_test
and some shader-db crashed because of the grf127 validation rule..
v2: make sure that opt_bank_conflicts() optimization doesn't change
the use of grf127. (Caio)
Found by Caio Marcelo de Oliveira Filho
Bugzilla: <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - piglit.spec.arb_compute_shader.linker.bug-93840 fails"
href="show_bug.cgi?id=107193">https://bugs.freedesktop.org/show_bug.cgi?id=107193</a>
Fixes: 232ed89802 "i965/fs: Register allocator shoudn't use grf127 for
sends dest"
Cc: 18.1 <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.freedesktop.org</a>>
Cc: Caio Marcelo de Oliveira Filho <<a href="mailto:caio.oliveira@intel.com">caio.oliveira@intel.com</a>>
Cc: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>>
Reviewed-by: Caio Marcelo de Oliveira Filho <<a href="mailto:caio.oliveira@intel.com">caio.oliveira@intel.com</a>></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>