r600: implement callstack workaround for evergreen

Graphics / Mesa 3D Graphics Library / Mesa - Dave Airlie [redhat.com] - 12 March 2018 01:11 EDT

This is ported from the sb backend, there are some issues with evergreen stacks on the boundary between entries and ALU_PUSH_BEFORE instructions.

Whenever we are going to use a push before, we check the stack usage and if we have to use the workaround, then we switch to a separate push.

I noticed this problem dealing with some of the soft fp64 shaders, in nosb mode, they are quite stack happy.

This fixes all the glitches and inconsistencies I've seen with them

5d4fbc2b54 r600: implement callstack workaround for evergreen.
src/gallium/drivers/r600/r600_shader.c | 39 +++++++++++++++++++++++++++-------
1 file changed, 31 insertions(+), 8 deletions(-)

Upstream: cgit.freedesktop.org

  • Share