Mesa (master): gallivm: Fix and enable the extra Newton/ Raphson step in lp_build_rcp().

Jose Fonseca jrfonseca at kemper.freedesktop.org
Wed Aug 11 17:46:40 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Wed Aug 11 18:44:17 2010 +0100

gallivm: Fix and enable the extra Newton/Raphson step in lp_build_rcp().

Thanks to Michal for spotting this.

---

 src/gallium/auxiliary/gallivm/lp_bld_arit.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index cf2feeb..816ee70 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -1274,7 +1274,7 @@ lp_build_rcp(struct lp_build_context *bld,
        * when we have a better system in place to track minimum precision.
        */
 
-#if 0
+#if 1
       /*
        * Do one Newton-Raphson step to improve precision:
        *
@@ -1291,7 +1291,7 @@ lp_build_rcp(struct lp_build_context *bld,
       res = LLVMBuildFSub(bld->builder, two, res, "");
       res = LLVMBuildFMul(bld->builder, res, rcp_a, "");
 
-      return rcp_a;
+      return res;
 #else
       return lp_build_intrinsic_unary(bld->builder, "llvm.x86.sse.rcp.ps", lp_build_vec_type(type), a);
 #endif




More information about the mesa-commit mailing list