diff options
| author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-09-13 15:21:58 -0600 | 
|---|---|---|
| committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-09-13 15:21:58 -0600 | 
| commit | 809e81c0b424839cb742ff2502b1010c0258b368 (patch) | |
| tree | 736f1021707ec31a58631ff2942d095cd72649d6 /src/gallium/auxiliary | |
| parent | 8d768c51018841b66dbed87ae6b50358e53ad2c4 (diff) | |
gallium: add another value check to util_fast_pow()
Fixes glitches seen in morph3d demo.
Diffstat (limited to 'src/gallium/auxiliary')
| -rw-r--r-- | src/gallium/auxiliary/util/u_math.h | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h index 9b4ca39371..0b10622ee7 100644 --- a/src/gallium/auxiliary/util/u_math.h +++ b/src/gallium/auxiliary/util/u_math.h @@ -272,8 +272,10 @@ util_fast_log2(float val)  static INLINE float  util_fast_pow(float x, float y)  { -   /* XXX this test may need adjustment */ -   if (y >= 3.0 && -0.02f <= x && x <= 0.02f) +   /* XXX these tests may need adjustment */ +   if (y >= 3.0f && (-0.02f <= x && x <= 0.02f)) +      return 0.0f; +   if (y >= 50.0f && (-0.9f <= x && x <= 0.9f))        return 0.0f;     return util_fast_exp2(util_fast_log2(x) * y);  } | 
