https://bugs.freedesktop.org/show_bug.cgi?id=85596
Bug ID: 85596 Summary: SB is used only after GPR check / GPR max is not dynamic Product: Mesa Version: git Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: curaga@operamail.com
Many big shaders that currently fail with r600_shader_select - Failed to build shader variant (type=1) -12 r600_shader_from_tgsi - GPR limit exceeded - shader requires foo registers
would actually work if the GPR check was moved to after SB, as SB reduces the GPR usage quite nicely.
Another thing is that 128 is the lowest common denominator, and many cards have 192 or 256, which could be checked with the radeon_info ioctl.
https://bugs.freedesktop.org/show_bug.cgi?id=85596
Lauri Kasanen curaga@operamail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends on| |74868, 81683, 69623
https://bugs.freedesktop.org/show_bug.cgi?id=85596
--- Comment #1 from Alex Deucher agd5f@yahoo.com --- (In reply to Lauri Kasanen from comment #0)
Many big shaders that currently fail with r600_shader_select - Failed to build shader variant (type=1) -12 r600_shader_from_tgsi - GPR limit exceeded - shader requires foo registers
would actually work if the GPR check was moved to after SB, as SB reduces the GPR usage quite nicely.
Another thing is that 128 is the lowest common denominator, and many cards have 192 or 256, which could be checked with the radeon_info ioctl.
From an ISA perspective, there are only 128 GPRs. The higher limits are hw
internal details.
https://bugs.freedesktop.org/show_bug.cgi?id=85596
--- Comment #2 from Vadim Girlin ptpzz@yandex.ru --- (In reply to Lauri Kasanen from comment #0)
Many big shaders that currently fail with r600_shader_select - Failed to build shader variant (type=1) -12 r600_shader_from_tgsi - GPR limit exceeded - shader requires foo registers
would actually work if the GPR check was moved to after SB, as SB reduces the GPR usage quite nicely.
Another thing is that 128 is the lowest common denominator, and many cards have 192 or 256, which could be checked with the radeon_info ioctl.
As Alex said, ISA encoding doesn't allow to address more than 128 registers in the instructions. IIRC we also by default reserve 4 GPRs as temporary (they are not preserved between ALU clauses), so the actual limit is 124 (or even 120?).
It's also the reason why we can't simply move the GPR check, the shader is passed from TGSI translator to SB in the ISA encoding which can't represent the code that uses more than 128 registers.
If anyone would like to revive a direct TGSI->SB translator that solves the problem, here is the branch: http://cgit.freedesktop.org/~vadimg/mesa/log/?h=wip-sb-tgsi There were no piglit regressions with that branch on evergreen when it was implemented, but now I suspect it's a bit outdated.
https://bugs.freedesktop.org/show_bug.cgi?id=85596
--- Comment #3 from Lauri Kasanen curaga@operamail.com --- Thanks, at least that info is now in one place.
https://bugs.freedesktop.org/show_bug.cgi?id=85596 Bug 85596 depends on bug 69623, which changed state.
Bug 69623 Summary: Pink Pony misrenders - - shader requires 126 registers https://bugs.freedesktop.org/show_bug.cgi?id=69623
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
https://bugs.freedesktop.org/show_bug.cgi?id=85596 Bug 85596 depends on bug 81683, which changed state.
Bug 81683 Summary: [r600g] graphic glitches in Skyrim - failed to build shader https://bugs.freedesktop.org/show_bug.cgi?id=81683
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |MOVED
https://bugs.freedesktop.org/show_bug.cgi?id=85596
GitLab Migration User gitlab-migration@fdo.invalid changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |MOVED
--- Comment #4 from GitLab Migration User gitlab-migration@fdo.invalid --- -- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/530.
dri-devel@lists.freedesktop.org