[Mesa-dev] [Bug 105371] r600_shader_from_tgsi - GPR limit exceeded - shader requires 360 registers

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 7 08:32:23 UTC 2018


--- Comment #4 from Gert Wollny <gw.fossdev at gmail.com> ---
The patch is not yet committed, I'll try a bit harder for the 18.3 release

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, &regno, &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,

You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180807/d9a040de/attachment.html>

More information about the mesa-dev mailing list