[Mesa-dev] [PATCH] ac/nir: don't put lod into args if it's zero.

Dave Airlie airlied at gmail.com
Wed Mar 7 03:26:01 UTC 2018


From: Dave Airlie <airlied at redhat.com>

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.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 src/amd/common/ac_nir_to_llvm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index f808dc89490..432b88a59b0 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -5094,8 +5094,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;
-- 
2.14.3



More information about the mesa-dev mailing list