mesa/patches/crashfix.diff

37 lines
1.6 KiB
Diff
Raw Normal View History

2024-11-25 23:10:19 +01:00
From 8653abac095c76fc898cbd72bc67b10b828c3478 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timur=20Krist=C3=B3f?= <timur.kristof@gmail.com>
Date: Mon, 25 Nov 2024 22:19:28 +0100
Subject: [PATCH] ac/nir/ngg: Remove erroneous NUW addition from workgroup
scan.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This may add constant -1 so naturally it can indeed cause
an unsigned wrap.
Fixes: 492d8f37782c14fd4c34b81c10f0f6ed0daa807c
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12204
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32338>
---
src/amd/common/ac_nir_lower_ngg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c
index d1c361165ffa4..c63441f06959c 100644
--- a/src/amd/common/ac_nir_lower_ngg.c
+++ b/src/amd/common/ac_nir_lower_ngg.c
@@ -419,7 +419,7 @@ repack_invocations_in_workgroup(nir_builder *b, nir_def **input_bool,
for (unsigned i = 0; i < num_repacks; ++i) {
nir_def *index_base_lane = nir_iadd_imm_nuw(b, wave_id, i * 16);
- nir_def *num_invocartions_lane = nir_iadd_imm_nuw(b, num_waves, i * 16 - 1);
+ nir_def *num_invocartions_lane = nir_iadd_imm(b, num_waves, i * 16 - 1);
nir_def *wg_repacked_index_base =
nir_isub(b, nir_read_invocation(b, sum, index_base_lane), surviving_invocations_in_current_wave[i]);
results[i].num_repacked_invocations =
--