r600: implement callstack workaround for evergreen.
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 Reviewed-by: Roland Scheidegger <firstname.lastname@example.org> Tested-by: Elie Tournier <email@example.com> Cc: <firstname.lastname@example.org> Signed-off-by: Dave Airlie <email@example.com>
Showing with 31 additions and 8 deletions