mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
nir/builder: add load/store array variable helper functions
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15765>
This commit is contained in:
parent
1ef734cde6
commit
ff8ae4e589
1 changed files with 34 additions and 0 deletions
|
|
@ -1452,6 +1452,40 @@ nir_copy_var(nir_builder *build, nir_variable *dest, nir_variable *src)
|
|||
nir_build_deref_var(build, src));
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_load_array_var(nir_builder *build, nir_variable *var, nir_ssa_def *index)
|
||||
{
|
||||
nir_deref_instr *deref =
|
||||
nir_build_deref_array(build, nir_build_deref_var(build, var), index);
|
||||
return nir_load_deref(build, deref);
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_load_array_var_imm(nir_builder *build, nir_variable *var, int64_t index)
|
||||
{
|
||||
nir_deref_instr *deref =
|
||||
nir_build_deref_array_imm(build, nir_build_deref_var(build, var), index);
|
||||
return nir_load_deref(build, deref);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nir_store_array_var(nir_builder *build, nir_variable *var, nir_ssa_def *index,
|
||||
nir_ssa_def *value, unsigned writemask)
|
||||
{
|
||||
nir_deref_instr *deref =
|
||||
nir_build_deref_array(build, nir_build_deref_var(build, var), index);
|
||||
nir_store_deref(build, deref, value, writemask);
|
||||
}
|
||||
|
||||
static inline void
|
||||
nir_store_array_var_imm(nir_builder *build, nir_variable *var, int64_t index,
|
||||
nir_ssa_def *value, unsigned writemask)
|
||||
{
|
||||
nir_deref_instr *deref =
|
||||
nir_build_deref_array_imm(build, nir_build_deref_var(build, var), index);
|
||||
nir_store_deref(build, deref, value, writemask);
|
||||
}
|
||||
|
||||
#undef nir_load_global
|
||||
static inline nir_ssa_def *
|
||||
nir_load_global(nir_builder *build, nir_ssa_def *addr, unsigned align,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue