mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 17:10:11 +01:00
aco: Don't set scalar offset on buffer load instructions when it's zero.
This helps generate slightly more optimal instructions. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21363>
This commit is contained in:
parent
e050a00b9f
commit
afdacf4dcc
1 changed files with 3 additions and 1 deletions
|
|
@ -7164,11 +7164,13 @@ visit_load_buffer(isel_context* ctx, nir_intrinsic_instr* intrin)
|
|||
Builder bld(ctx->program, ctx->block);
|
||||
|
||||
bool idxen = !nir_src_is_const(intrin->src[3]) || nir_src_as_uint(intrin->src[3]);
|
||||
bool s_offset_zero = nir_src_is_const(intrin->src[2]) && !nir_src_as_uint(intrin->src[2]);
|
||||
|
||||
Temp dst = get_ssa_temp(ctx, &intrin->dest.ssa);
|
||||
Temp descriptor = bld.as_uniform(get_ssa_temp(ctx, intrin->src[0].ssa));
|
||||
Temp v_offset = as_vgpr(ctx, get_ssa_temp(ctx, intrin->src[1].ssa));
|
||||
Temp s_offset = bld.as_uniform(get_ssa_temp(ctx, intrin->src[2].ssa));
|
||||
Temp s_offset =
|
||||
s_offset_zero ? Temp(0, s1) : bld.as_uniform(get_ssa_temp(ctx, intrin->src[2].ssa));
|
||||
Temp idx = idxen ? as_vgpr(ctx, get_ssa_temp(ctx, intrin->src[3].ssa)) : Temp();
|
||||
|
||||
bool swizzled = nir_intrinsic_access(intrin) & ACCESS_IS_SWIZZLED_AMD;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue