radv: enable lowering of GS intrinsics for the LLVM backend
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 13 Mar 2020 10:23:07 +0000 (11:23 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 8 Apr 2020 06:24:05 +0000 (08:24 +0200)
commit9f005f1f850710ea456f9847b1d247aaa8f0d6d2
treed5969d17822744f93d9a120e66a9a096277ad73f
parentcd99ea7318863aa61f8a4516cd153611de85989e
radv: enable lowering of GS intrinsics for the LLVM backend

This replaces emit_vertex with:
   if (vertex_count < max_vertices) {
      emit_vertex_with_counter vertex_count ...
      vertex_count += 1
   }

Which is exactly what NIR->LLVM was doing but at NIR level. This
pass is already called by ACO.

pipeline-db changes on GFX10:
Totals from affected shaders:
SGPRS: 1952 -> 1912 (-2.05 %)
VGPRS: 2112 -> 2044 (-3.22 %)
Code Size: 189368 -> 185620 (-1.98 %) bytes
Max Waves: 494 -> 491 (-0.61 %)

No pipeline-db changes on other generations.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4182>
src/amd/llvm/ac_nir_to_llvm.c
src/amd/llvm/ac_shader_abi.h
src/amd/vulkan/radv_nir_to_llvm.c
src/amd/vulkan/radv_shader.c