summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/tnl/t_vb_arbprogram.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mesa/tnl/t_vb_arbprogram.c b/src/mesa/tnl/t_vb_arbprogram.c
index c569d93478..70e1048f14 100644
--- a/src/mesa/tnl/t_vb_arbprogram.c
+++ b/src/mesa/tnl/t_vb_arbprogram.c
@@ -96,16 +96,17 @@ static GLfloat RoughApproxLog2(GLfloat t)
static GLfloat RoughApproxPow2(GLfloat t)
{
- GLfloat q;
-#ifdef USE_IEEE
- GLint ii = (GLint) t;
- ii = (ii << 23) + 0x3f800000;
- SET_FLOAT_BITS(q, ii);
- q = *((GLfloat *) (void *)&ii);
+#if 0
+ /* This isn't nearly accurate enough - it discards all of t's
+ * fractional bits!
+ */
+ fi_type fi;
+ fi.i = (GLint) t;
+ fi.i = (fi.i << 23) + 0x3f800000;
+ return fi.f;
#else
- q = (GLfloat) pow(2.0, floor_t0);
+ return (GLfloat) _mesa_pow(2.0, floor_t0);
#endif
- return q;
}
static GLfloat RoughApproxPower(GLfloat x, GLfloat y)