From 9790921ff5c88ad860c55ba21ef1d66afd9ab2dc Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 27 Feb 2018 16:08:40 +1100 Subject: [PATCH] ac: fix nir_op_fdd{x,y} handling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit radeonsi, i965 and anv all treat fdd{x,y} opcodes the same as fdd{x,y}_coarse by default. The SPIR-V spec lets the implementation decide how it should be handled and radv was previously going for the higher quality option. Here we change the shared amd code to match how nir_op_fdd{x,y} is expected to be handled by the other NIR drivers. Fixes piglit test: ./bin/arb_shader_texture_lod-texgrad -auto Reviewed-by: Dave Airlie Reviewed-by: Marek Olšák --- src/amd/common/ac_nir_to_llvm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index fabecb17869..b01012833fe 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -1613,9 +1613,9 @@ static LLVMValueRef emit_ddxy(struct ac_nir_context *ctx, int idx; LLVMValueRef result; - if (op == nir_op_fddx_fine || op == nir_op_fddx) + if (op == nir_op_fddx_fine) mask = AC_TID_MASK_LEFT; - else if (op == nir_op_fddy_fine || op == nir_op_fddy) + else if (op == nir_op_fddy_fine) mask = AC_TID_MASK_TOP; else mask = AC_TID_MASK_TOP_LEFT; -- 2.30.2