From: Keith Whitwell Date: Thu, 9 Jun 2005 18:59:41 +0000 (+0000) Subject: Further clean up RoughApproxPow2 and disable the optimized version -- X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=44367aab2a987a03ee1acfb7aa3a9116f3618af0;p=mesa.git Further clean up RoughApproxPow2 and disable the optimized version -- it's a very poor approximation. --- diff --git a/src/mesa/tnl/t_vb_arbprogram.c b/src/mesa/tnl/t_vb_arbprogram.c index c569d93478f..70e1048f140 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)