Mesa (master): ac: fix nir_op_fdd{x,y} handling

Timothy Arceri tarceri at kemper.freedesktop.org
Tue Feb 27 22:26:47 UTC 2018


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

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Tue Feb 27 16:08:40 2018 +1100

ac: fix nir_op_fdd{x,y} handling

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 <airlied at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 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 fabecb1786..b01012833f 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;




More information about the mesa-commit mailing list