aco: disable zero offset optimization for strict WQM coords

If we try to do this, we end up using {undef,coordx} as the coordinates
for an image_sample instruction, because we can't shrink the linear VGPR.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9767
Fixes: 859e059aa9 ("radv: use fix_derivs_in_divergent_cf")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25477>
This commit is contained in:
Rhys Perry 2023-09-29 16:12:09 +01:00 committed by Marge Bot
parent 305db1af11
commit c3a894fb47

View file

@ -9343,7 +9343,7 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr)
if (pack_const && pack != Temp())
pack = bld.vop2(aco_opcode::v_or_b32, bld.def(v1), Operand::c32(pack_const), pack);
}
if (pack_const && pack == Temp())
if ((pack_const || has_wqm_coord) && pack == Temp())
offset = bld.copy(bld.def(v1), Operand::c32(pack_const));
else if (pack == Temp())
has_offset = false;