From 1d9fbe5387b913e53652effb5e264852629a4552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 29 Dec 2024 20:09:52 -0500 Subject: [PATCH] ac/nir: add helper ac_nir_load_arg_upper_bound MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Timur Kristóf Part-of: --- src/amd/common/ac_nir.c | 16 ++++++++++++++++ src/amd/common/ac_nir.h | 11 ++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/amd/common/ac_nir.c b/src/amd/common/ac_nir.c index 4bb5370f66c..c572f2cedac 100644 --- a/src/amd/common/ac_nir.c +++ b/src/amd/common/ac_nir.c @@ -47,6 +47,22 @@ ac_nir_load_arg_at_offset(nir_builder *b, const struct ac_shader_args *ac_args, return nir_load_vector_arg_amd(b, num_components, .base = arg_index); } +nir_def * +ac_nir_load_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg) +{ + return ac_nir_load_arg_at_offset(b, ac_args, arg, 0); +} + +nir_def * +ac_nir_load_arg_upper_bound(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg, + unsigned upper_bound) +{ + nir_def *value = ac_nir_load_arg_at_offset(b, ac_args, arg, 0); + nir_intrinsic_set_arg_upper_bound_u32_amd(nir_instr_as_intrinsic(value->parent_instr), + upper_bound); + return value; +} + void ac_nir_store_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg, nir_def *val) diff --git a/src/amd/common/ac_nir.h b/src/amd/common/ac_nir.h index 26af1b3616f..a418e90a45c 100644 --- a/src/amd/common/ac_nir.h +++ b/src/amd/common/ac_nir.h @@ -61,11 +61,12 @@ nir_def * ac_nir_load_arg_at_offset(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg, unsigned relative_index); -static inline nir_def * -ac_nir_load_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg) -{ - return ac_nir_load_arg_at_offset(b, ac_args, arg, 0); -} +nir_def * +ac_nir_load_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg); + +nir_def * +ac_nir_load_arg_upper_bound(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg, + unsigned upper_bound); void ac_nir_store_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg, nir_def *val);