From: Dave Airlie Date: Wed, 7 Mar 2018 03:24:25 +0000 (+0000) Subject: ac/nir: don't put lod into args if it's zero. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fb077b072823ecb193f4494daeceddf0f21aede2;p=mesa.git ac/nir: don't put lod into args if it's zero. If it's zero but put it in args we still end up consuming a register for it. This fixes some spilling in the NIR paths in Dirt Rally that isn't seen with TGSI. Reviewed-by: Timothy Arceri Signed-off-by: Dave Airlie --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index ea51c3a54a9..cca796de71b 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -5070,8 +5070,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr) } /* Pack LOD */ - if (lod && ((instr->op == nir_texop_txl && !lod_is_zero) || - instr->op == nir_texop_txf)) { + if (lod && ((instr->op == nir_texop_txl || instr->op == nir_texop_txf) && !lod_is_zero)) { address[count++] = lod; } else if (instr->op == nir_texop_txf_ms && sample_index) { address[count++] = sample_index;