mesa/src
Mel Henning de1ed48325 nak/spill_values: Spill constants across edges if needed
In a previous iteration of the spilling code, we added an extra check to
only spill across edges if the value being spilled is in the W set.
This was due to a misunderstanding of the modeling of S and W in Braun
and Hack.  In the current implementation, we maintain the invariant that
every live value is in at least one of S or W so we don't need that
check but it was left in by mistake.

One exception to this rule was added when we special-cased constant
values.  Now the invariant is that every live value is in S, in W, or is
a constant.  When we made this change, the check we accidentally left in
bit us because now if a value is constant but not in W, it wasn't
getting spilled across the edge.  This can result in a value getting
filled later which was never spilled, leading to undefined values.

Fixes: 7b82e26e3c ("nak: Don't spill/fill const values")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12993
Co-authored-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34563>
2025-04-17 17:10:40 +00:00
..
amd aco/gfx12: VOPD src0/1 are src bank compatible if they are the same vgpr 2025-04-17 14:00:29 +00:00
android_stub
asahi hk: fix underbinding scratch 2025-04-16 15:24:37 +00:00
broadcom ci/piglit: Use structured tagging for Piglit 2025-04-17 09:22:39 +00:00
c11 c11: use SPDX-License-Identifier header 2025-01-08 20:37:51 +00:00
compiler spirv, radv, intel: Add NIR intrinsic for cmat conversion 2025-04-16 23:13:36 +00:00
drm-shim
egl meson: support building with system libgbm 2025-04-09 12:15:33 +00:00
etnaviv ci/piglit: Use structured tagging for Piglit 2025-04-17 09:22:39 +00:00
freedreno ci/piglit: Use structured tagging for Piglit 2025-04-17 09:22:39 +00:00
gallium etnaviv/ml: Support FullyConnected with signed weights 2025-04-17 13:30:21 +00:00
gbm meson: support building with system libgbm 2025-04-09 12:15:33 +00:00
getopt
gfxstream gfxstream: update code generator for simplified dep graph 2025-04-09 18:29:57 +00:00
glx glx: stop exporting EXT_texture_object functions from libGLX_mesa.so 2025-03-27 05:46:35 +00:00
gtest
imagination treewide: Switch to nir_progress 2025-02-26 15:19:53 +00:00
imgui
intel anv: re enable compression for CPS surfaces on platforms other than Xe 2025-04-17 14:24:11 +00:00
loader loader: Stop looking in ${libdir}/tls/ 2025-03-13 19:45:45 +00:00
mapi glapi: import noop_array and public stubs earlier. 2025-04-04 00:18:28 +00:00
mesa mesa: Add CPU traces 2025-04-15 10:37:39 +00:00
microsoft microsoft/compiler: Force load_output => undef in tess_ctrl main func 2025-04-16 16:02:07 +00:00
nouveau nak/spill_values: Spill constants across edges if needed 2025-04-17 17:10:40 +00:00
panfrost ci/piglit: Use structured tagging for Piglit 2025-04-17 09:22:39 +00:00
tool perfetto/android: align datasource names with tooling expectations 2025-04-08 18:29:10 +00:00
util mesa: Add CPU traces 2025-04-15 10:37:39 +00:00
virtio virtio/vdrm: Add vtest backend 2025-04-08 15:38:39 +00:00
vulkan vk/sync: Fix execution only barriers 2025-04-10 15:28:22 +00:00
x11 glx/egl/x11: fix x11_dri3_check_multibuffer 2025-02-17 02:50:15 +00:00
.clang-format radv: Add radv_foreach_stage to ForEachMacros again. 2025-04-11 18:01:47 +00:00
meson.build meson: support building with system libgbm 2025-04-09 12:15:33 +00:00