Mesa (master): ac/nir: don't put lod into args if it's zero.

Dave Airlie airlied at kemper.freedesktop.org
Wed Mar 7 03:35:14 UTC 2018


Module: Mesa
Branch: master
Commit: fb077b072823ecb193f4494daeceddf0f21aede2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb077b072823ecb193f4494daeceddf0f21aede2

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Mar  7 03:24:25 2018 +0000

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 <tarceri at itsqueeze.com>
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 ea51c3a54a..cca796de71 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;




More information about the mesa-commit mailing list