<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - r600_shader_from_tgsi - GPR limit exceeded - shader requires 360 registers"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105371#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - r600_shader_from_tgsi - GPR limit exceeded - shader requires 360 registers"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105371">bug 105371</a>
from <span class="vcard"><a class="email" href="mailto:gw.fossdev@gmail.com" title="Gert Wollny <gw.fossdev@gmail.com>"> <span class="fn">Gert Wollny</span></a>
</span></b>
<pre>The patch is not yet committed, I'll try a bit harder for the 18.3 release
cycle.
Actually, with the current mesa version you should have the spilling code in
place, and if you see this error then the shader either uses many registers
that are not organized as arrays, so they will not be spilled and my patch will
not help, or you may have encountered a case where the shader uses exactly the
amount of registers that falls in the gap between failing and forcing spilling.
I encountered something like this with the latest Unreal editor and a certain
level design. I plan to send out a patch to deal with this too, but haven't
gotten around this.
Essentially in r600_shader.c:3550 (more or less) you have
if (regno > 124) {
choose_spill_arrays(&ctx, ®no, &pipeshader->scratch_space_needed);
shader->indirect_files = ctx.info.indirect_files;
}
but the shader needs around 10-20 registers more then regno, so the limit
should be more like 100. That said the spilling has its own problems, there is
still something going wrong with the synchronization I think.
Apart from that:
Note that when you apply the mbox, the first "patch" is the cover letter and
this you have to skip with "git am --skip", after that the latest version of
the series should apply cleanly (thanks @mirth for pointing out how to do this
with pwclient and where the github tree is)
hope that helps,</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>