Mesa (master): glsl: avoid using rcp in length() functions

Brian Paul brianp at kemper.freedesktop.org
Mon Mar 29 17:47:52 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Mar 29 11:31:02 2010 -0600

glsl: avoid using rcp in length() functions

See prev commit for related info.

---

 .../shader/slang/library/slang_common_builtin.gc   |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/shader/slang/library/slang_common_builtin.gc b/src/mesa/shader/slang/library/slang_common_builtin.gc
index 3d46463..d75354d 100644
--- a/src/mesa/shader/slang/library/slang_common_builtin.gc
+++ b/src/mesa/shader/slang/library/slang_common_builtin.gc
@@ -1160,7 +1160,7 @@ float length(const vec2 v)
    float r;
    const float p = dot(v, v);      // p = v.x * v.x + v.y * v.y
    __asm float_rsq r, p;           // r = 1 / sqrt(p)
-   __asm float_rcp __retVal.x, r;  // retVal = 1 / r
+   __retVal = p * r;               // p * r = sqrt(p);
 }
 
 float length(const vec3 v)
@@ -1168,7 +1168,7 @@ float length(const vec3 v)
    float r;
    const float p = dot(v, v);      // p = v.x * v.x + v.y * v.y + v.z * v.z
    __asm float_rsq r, p;           // r = 1 / sqrt(p)
-   __asm float_rcp __retVal, r;    // retVal = 1 / r
+   __retVal = p * r;               // p * r = sqrt(p);
 }
 
 float length(const vec4 v)
@@ -1176,7 +1176,7 @@ float length(const vec4 v)
    float r;
    const float p = dot(v, v);      // p = v.x * v.x + v.y * v.y + ...
    __asm float_rsq r, p;           // r = 1 / sqrt(p)
-   __asm float_rcp __retVal, r;    // retVal = 1 / r
+   __retVal = p * r;               // p * r = sqrt(p);
 }
 
 




More information about the mesa-commit mailing list