aco: fix FS inputs loads in WQM with 16-bit

p_wqm needs to use the same size.

Fixes: 16d2c7ad55 ("aco/gfx11: perform FS input loads in WQM")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19788>
(cherry picked from commit 50fe37070f)
This commit is contained in:
Samuel Pitoiset 2022-11-16 10:35:19 +00:00 committed by Eric Engestrom
parent e566cd6add
commit bbcde41cb2
2 changed files with 9 additions and 3 deletions

View file

@ -22,7 +22,7 @@
"description": "aco: fix FS inputs loads in WQM with 16-bit",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "16d2c7ad557b46104f91365ab3405f0a3ed7e36d"
},

View file

@ -5347,7 +5347,10 @@ emit_interp_instr_gfx11(isel_context* ctx, unsigned idx, unsigned component, Tem
res = bld.vinterp_inreg(aco_opcode::v_interp_p2_f32_inreg, bld.def(v1), p, coord2, p10);
}
/* lds_param_load must be done in WQM, and the result kept valid for helper lanes. */
emit_wqm(bld, res, dst, true);
if (dst.regClass() != v2b)
emit_wqm(bld, res, dst, true);
else
emit_extract_vector(ctx, emit_wqm(bld, res, Temp(0, s1), true), 0, dst);
}
void
@ -5417,7 +5420,10 @@ emit_interp_mov_instr(isel_context* ctx, unsigned idx, unsigned component, unsig
Temp res = bld.vop1_dpp(aco_opcode::v_mov_b32, bld.def(v1), p, dpp_ctrl);
/* lds_param_load must be done in WQM, and the result kept valid for helper lanes. */
emit_wqm(bld, res, dst, true);
if (dst.regClass() != v2b)
emit_wqm(bld, res, dst, true);
else
emit_extract_vector(ctx, emit_wqm(bld, res, Temp(0, s1), true), 0, dst);
}
} else {
bld.vintrp(aco_opcode::v_interp_mov_f32, Definition(dst), Operand::c32(vertex_id),