mesa/src
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
..
amd radv: Remove PSIZ output when it isn't needed. 2021-09-16 11:06:05 +00:00
android_stub egl/android: refactor to use the legit vndk/window.h header 2021-06-09 21:07:54 +00:00
asahi nir: add indirect loop unrolling to compiler options 2021-08-03 10:54:50 +00:00
broadcom v3dv: start using Broadcom's device identifiers 2021-09-15 12:54:48 +00:00
compiler nir: Drop the unused instr arg for src/dest copy functions. 2021-09-14 17:53:06 +00:00
drm-shim drm-shim: Support kernels with >4k pages 2021-08-13 23:33:52 +00:00
egl egl: Add a basic Windows driver 2021-09-15 20:17:31 +00:00
etnaviv android: Drop the Android.mk build system 2021-07-08 14:44:02 -05:00
freedreno nir: Drop the unused instr arg for src/dest copy functions. 2021-09-14 17:53:06 +00:00
gallium lavapipe: enable KHR_shader_subgroup_extended_types 2021-09-16 04:15:41 +00:00
gbm gbm/dri: implement image lookup extension version 2 2021-09-09 01:42:39 +00:00
getopt
glx glx: Prevent crashes when an extension isn't found 2021-09-08 11:46:51 +00:00
gtest
hgl
imgui
intel intel/decode/gfx6: add support for gfx6 CC/VIEWPORT pointers. 2021-09-16 05:13:16 +10:00
loader driconfig: Add support for device specific config 2021-08-02 16:37:24 -07:00
mapi static-glapi: Fix MSVC preprocessor definitions 2021-09-08 07:21:53 -07:00
mesa i965: Only call lower_blend_equation_advanced for fragment shaders 2021-09-14 03:55:05 +00:00
microsoft nir: Drop the unused instr arg for src/dest copy functions. 2021-09-14 17:53:06 +00:00
nouveau
panfrost pan/bi: Don't set dependencies for +BLEND in blend shaders 2021-09-15 22:42:03 +00:00
tool pps: Panfrost pps driver 2021-07-13 11:03:55 +00:00
util driconf: remove leftover code for allow_incorrect_primitive_id 2021-09-13 22:23:27 +00:00
virtio venus: separate physical device init and filter 2021-09-09 20:07:18 +00:00
vulkan vulkan/wsi/x11: add driconf option to not wait under Xwayland 2021-09-13 19:38:13 +00:00
meson.build meson: Include EGL after gallium 2021-09-15 20:17:31 +00:00