Mesa (master): radv/ac: fix texture derivative ordering

Dave Airlie airlied at kemper.freedesktop.org
Mon Apr 3 19:39:40 UTC 2017


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Sun Mar 19 13:39:29 2017 +1000

radv/ac: fix texture derivative ordering

The ordering NIR gives us is correct for the hw, this fixes:
dEQP-VK.glsl.texture_functions.texturegrad.* (mainly trigged
on isampler/usampler 3d textures.).

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied at redhat.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 7ac9a1a316..c8ea0da774 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -4230,8 +4230,8 @@ static void visit_tex(struct nir_to_llvm_context *ctx, nir_tex_instr *instr)
 		}
 
 		for (unsigned i = 0; i < num_deriv_comp; i++) {
-			derivs[i * 2] = to_float(ctx, llvm_extract_elem(ctx, ddx, i));
-			derivs[i * 2 + 1] = to_float(ctx, llvm_extract_elem(ctx, ddy, i));
+			derivs[i] = to_float(ctx, llvm_extract_elem(ctx, ddx, i));
+			derivs[num_deriv_comp + i] = to_float(ctx, llvm_extract_elem(ctx, ddy, i));
 		}
 	}
 




More information about the mesa-commit mailing list