<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Unreal Engine demo doesn't run"
href="https://bugs.freedesktop.org/show_bug.cgi?id=86469#c12">Comment # 12</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Unreal Engine demo doesn't run"
href="https://bugs.freedesktop.org/show_bug.cgi?id=86469">bug 86469</a>
from <span class="vcard"><a class="email" href="mailto:itoral@igalia.com" title="Iago Toral <itoral@igalia.com>"> <span class="fn">Iago Toral</span></a>
</span></b>
<pre>(In reply to Tapani Pälli from <a href="show_bug.cgi?id=86469#c2">comment #2</a>)
<span class="quote">> (In reply to Kenneth Graunke from <a href="show_bug.cgi?id=86469#c1">comment #1</a>)
> > This should actually be pretty easy to fix. Sandybridge has more than 16
> > MRFs, so we could just adjust the spilling code to use the higher numbered
> > ones which aren't used for anything else.
> >
> > The check also seems a bit heavy handed...it may not actually conflict...
>
> I've checked that Effects works on SNB by simply setting spill_base_mrf 15
> (as 14 is used). I did not find documentation that would indicate more than
> 16 MRFs available though. Docs indicate there are 16 from which 1 .. 15 can
> be used.</span >
Even if we keep 16 as the limit for now, why not compute spill_base_mrf based
on the actual data in mrf_used? Something like this:
for (int i = BRW_MAX_MRF - 1; !mrf_used[i]; i--);
spill_base_mrf = i + 1;
if (spill_base_mrf >= BRW_MAX_MRF) {
fail("Register spilling not supported with m%d used", i);
return;
}
We would have to do this in spill_reg and emit_spill, but that would make sure
that we don't fail if there enough unused MRFs available within that limit,
which is what is happening here.</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>