mesa/src
Vasily Khoruzhick 6528ee4228 lima: ppir: reuse load_temp/store_temp nodes if possible
Currently spilling code operates on individual ops rather than on
instructions, and as a result it may create a redundant load_temp op if
an instruction references spilling register several times.

Similarly, it creates multiple stores if there are multiple ops in the
instruction that write different components of the register.

Check whether the instruction already contains a necessary load_temp or
store_temp and reuse it if possible.

shader-db:

total instructions in shared programs: 27718 -> 27673 (-0.16%)
instructions in affected programs: 2786 -> 2741 (-1.62%)
helped: 18
HURT: 0
helped stats (abs) min: 1 max: 8 x̄: 2.50 x̃: 1
helped stats (rel) min: 0.39% max: 5.33% x̄: 2.05% x̃: 0.80%
95% mean confidence interval for instructions value: -3.70 -1.30
95% mean confidence interval for instructions %-change: -3.09% -1.01%
Instructions are helped.

total loops in shared programs: 4 -> 4 (0.00%)
loops in affected programs: 0 -> 0
helped: 0
HURT: 0

total spills in shared programs: 390 -> 381 (-2.31%)
spills in affected programs: 145 -> 136 (-6.21%)
helped: 9
HURT: 0

total fills in shared programs: 1210 -> 1174 (-2.98%)
fills in affected programs: 149 -> 113 (-24.16%)
helped: 9
HURT: 0

LOST:   0
GAINED: 0

Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33753>
2025-03-06 01:48:55 +00:00
..
amd radv: don't unnecessarily flag prolog recalc when binding VBOs 2025-03-06 01:26:02 +00:00
android_stub
asahi meson: make CL args common 2025-03-06 00:43:59 +00:00
broadcom v3dv: fix clang warning 2025-03-05 21:28:53 +00:00
c11 c11: use SPDX-License-Identifier header 2025-01-08 20:37:51 +00:00
compiler meson,clc: set CL standard from meson 2025-03-06 00:43:59 +00:00
drm-shim
egl egl/surfaceless: Only choose drivers that expose the graphics capability 2025-03-05 10:48:28 +00:00
etnaviv etnaviv/ci: Update flakes for gc7000-r6214 2025-03-04 11:08:59 +00:00
freedreno tu: Be more granular in calculating whether blend state reads color 2025-03-05 15:16:37 +00:00
gallium lima: ppir: reuse load_temp/store_temp nodes if possible 2025-03-06 01:48:55 +00:00
gbm dri: delete INVALIDATE extension 2025-02-26 21:46:06 +00:00
getopt
gfxstream gfxstream: Remove duplicated boxed handle func declarations 2025-02-27 17:37:55 +00:00
glx glx: make it more obvious what libglapi_bridge is 2025-03-03 21:06:06 +00:00
gtest
imagination treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
imgui
intel intel: use common CL args 2025-03-06 00:43:59 +00:00
loader kmsro: look for graphics capable screen as renderonly device 2025-03-05 10:48:28 +00:00
mapi glapi: remove unused python code 2025-03-03 21:06:06 +00:00
mesa mesa: avoid creating incomplete surfaces when multiview goes out of range 2025-03-05 09:15:22 +00:00
microsoft vulkan/runtime: store flags on descriptor set layouts 2025-02-27 13:26:58 +02:00
nouveau meson: make CL args common 2025-03-06 00:43:59 +00:00
panfrost panfrost: clean up CL meson rules 2025-03-06 00:43:59 +00:00
tool panvk: add u_trace perfetto support 2024-12-17 23:14:26 +00:00
util asahi: port to common stats framework 2025-03-05 20:50:17 +00:00
virtio venus: fix an obsolete protocol sync earlier 2025-03-02 16:58:21 +00:00
vulkan vulkan: add helpers to work with executable statistics 2025-03-05 20:50:17 +00:00
x11 glx/egl/x11: fix x11_dri3_check_multibuffer 2025-02-17 02:50:15 +00:00
.clang-format freedreno: move ForEachMacros into freedreno 2025-01-24 12:15:31 +00:00
meson.build glapi: remove check_table tests 2025-03-03 21:06:06 +00:00