mesa/src/amd
Timur Kristóf 92e1981a80 radv: Remove PSIZ output when it isn't needed.
PSIZ output is only needed when:
1. There is a next stage and it reads it.
2. Primitive topology is point list, in the last vertex pipeline stage.

Zink always adds this output in its vertex (and other) shaders,
because it helps Zink avoid recompiling shader variants.

However, this has a performance impact for RADV because
it needs a scalar memory load. That becomes noticeable
at high primitive rates.

The Fossil stats are unremarkable because our DB doesn't include any
shaders from Zink or D9VK, but there are a few affected shaders.

Note that there may be an increase in LDS use in some GS. This is
because with PSIZ removed the ES per-vertex LDS size is smaller, so
we can squeeze more GS threads in the same workgroup.

Fossil DB stats on Sienna Cichlid:

Totals from 14 (0.01% of 128647) affected shaders:
CodeSize: 119884 -> 119732 (-0.13%)
LDS: 235008 -> 228864 (-2.61%); split: -2.83%, +0.22%
Instrs: 23076 -> 23048 (-0.12%)
Latency: 71667 -> 71625 (-0.06%)
InvThroughput: 19155 -> 18870 (-1.49%)
Copies: 1586 -> 1572 (-0.88%)

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10725>
2021-09-16 11:06:05 +00:00
..
addrlib amd/addrlib: expose CMASK address equations to drivers on GFX10+ 2021-08-05 06:37:09 +00:00
ci radv/ci: add a list of expected failures for VanGogh 2021-09-15 18:20:07 +02:00
common ac/gpu_info: add has_accelerated_dot_product 2021-09-03 13:21:27 +00:00
compiler aco/ra: Fix potential out-of-bounds array accesses. 2021-09-10 19:39:18 +00:00
llvm ac/llvm: implement nir_intrinsic_global_atomic_{fmin,fmax} 2021-09-15 14:10:42 +00:00
registers python: drop python2 support 2021-08-14 21:44:32 +00:00
vulkan radv: Remove PSIZ output when it isn't needed. 2021-09-16 11:06:05 +00:00
.clang-format radv: Add clang-format for AMD code. 2021-04-10 03:31:32 +02:00
meson.build aco: add framework for unit testing 2020-07-30 16:13:08 +00:00