mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 11:00:11 +01:00
ac/nir: add ac_nir_load_arg_at_offset
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22045>
This commit is contained in:
parent
e6f69853be
commit
003d84b660
2 changed files with 16 additions and 6 deletions
|
|
@ -26,15 +26,18 @@
|
|||
#include "nir_builder.h"
|
||||
#include "nir_xfb_info.h"
|
||||
|
||||
/* Load argument with index start from arg plus relative_index. */
|
||||
nir_ssa_def *
|
||||
ac_nir_load_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg)
|
||||
ac_nir_load_arg_at_offset(nir_builder *b, const struct ac_shader_args *ac_args,
|
||||
struct ac_arg arg, unsigned relative_index)
|
||||
{
|
||||
unsigned num_components = ac_args->args[arg.arg_index].size;
|
||||
unsigned arg_index = arg.arg_index + relative_index;
|
||||
unsigned num_components = ac_args->args[arg_index].size;
|
||||
|
||||
if (ac_args->args[arg.arg_index].file == AC_ARG_SGPR)
|
||||
return nir_load_scalar_arg_amd(b, num_components, .base = arg.arg_index);
|
||||
if (ac_args->args[arg_index].file == AC_ARG_SGPR)
|
||||
return nir_load_scalar_arg_amd(b, num_components, .base = arg_index);
|
||||
else
|
||||
return nir_load_vector_arg_amd(b, num_components, .base = arg.arg_index);
|
||||
return nir_load_vector_arg_amd(b, num_components, .base = arg_index);
|
||||
}
|
||||
|
||||
nir_ssa_def *
|
||||
|
|
|
|||
|
|
@ -67,7 +67,14 @@ typedef struct nir_builder nir_builder;
|
|||
typedef void (*ac_nir_cull_accepted)(nir_builder *b, void *state);
|
||||
|
||||
nir_ssa_def *
|
||||
ac_nir_load_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg);
|
||||
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_ssa_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_ssa_def *
|
||||
ac_nir_unpack_arg(nir_builder *b, const struct ac_shader_args *ac_args, struct ac_arg arg,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue