Mesa (main): ac/nir: fix left shift of 1 by 31 places detected by UBSAN
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Nov 25 17:11:53 UTC 2021
Module: Mesa
Branch: main
Commit: 8e3fbe7cc8e63c0dd7c849866a9408f329110750
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e3fbe7cc8e63c0dd7c849866a9408f329110750
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Wed Nov 24 14:18:47 2021 +0100
ac/nir: fix left shift of 1 by 31 places detected by UBSAN
src/amd/common/ac_nir_lower_ngg.c:1135:62: runtime error: left shift
of 1 by 31 places cannot be represented in type 'int
src/amd/common/ac_nir_lower_ngg.c:622:20: runtime error: left shift
of 1 by 31 places cannot be represented in type 'int'
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13951>
---
src/amd/common/ac_nir_lower_ngg.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c
index 40db4d96b13..bdbcb613681 100644
--- a/src/amd/common/ac_nir_lower_ngg.c
+++ b/src/amd/common/ac_nir_lower_ngg.c
@@ -619,7 +619,7 @@ cleanup_culling_shader_after_dce(nir_shader *shader,
break;
case nir_intrinsic_load_input:
if (state->instance_rate_inputs &
- (1 << (nir_intrinsic_base(intrin) - VERT_ATTRIB_GENERIC0)))
+ (1u << (nir_intrinsic_base(intrin) - VERT_ATTRIB_GENERIC0)))
uses_vs_instance_id = true;
else
uses_vs_vertex_id = true;
@@ -1132,7 +1132,7 @@ add_deferred_attribute_culling(nir_builder *b, nir_cf_list *original_extracted_c
.memory_semantics=NIR_MEMORY_ACQ_REL, .memory_modes=nir_var_mem_shared);
nir_store_var(b, gs_accepted_var, nir_imm_bool(b, false), 0x1u);
- nir_store_var(b, prim_exp_arg_var, nir_imm_int(b, 1 << 31), 0x1u);
+ nir_store_var(b, prim_exp_arg_var, nir_imm_int(b, 1u << 31), 0x1u);
/* GS invocations load the vertex data and perform the culling. */
nir_if *if_gs_thread = nir_push_if(b, nir_build_has_input_primitive_amd(b));
More information about the mesa-commit
mailing list