summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan.c.baker@intel.com>2020-04-30 12:40:56 -0700
committerMarge Bot <eric+marge@anholt.net>2020-06-30 21:43:22 +0000
commitfde25a6ed94409eca4e6b47f73774356314095d9 (patch)
treecc73f428385711a21007cbd6a1c51ee90465d6f6
parent2e5b2145068223bbe0b4a8cb1ffb2f26e2fb6527 (diff)
mesa/swrast: use logf2 instead of util_fast_log2
The fast version is apparently not accurate enough. I wrote a very simply test program that called logf2 and the old LOG2 function 100000 times. Across that the two functions had very similar run times, neither appeared meaningfully faster, so the optimization of bringing back yet another way to calculate log2f seems pointless. Fixes: bd4e769515345a6b20562310334bc828c0bb6605 ("replace LOG2 with util_fast_log2") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2856 Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5406>
-rw-r--r--src/mesa/swrast/s_span.c4
-rw-r--r--src/mesa/swrast/s_texfilter.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c
index 2eb22539a0f..dcb2db01e6d 100644
--- a/src/mesa/swrast/s_span.c
+++ b/src/mesa/swrast/s_span.c
@@ -426,7 +426,7 @@ _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy,
GLfloat x = sqrtf(dudx * dudx + dvdx * dvdx);
GLfloat y = sqrtf(dudy * dudy + dvdy * dvdy);
GLfloat rho = MAX2(x, y);
- GLfloat lambda = util_fast_log2(rho);
+ GLfloat lambda = log2f(rho);
return lambda;
}
@@ -453,7 +453,7 @@ _swrast_compute_lambda(GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy,
maxU = MAX2(dsdx2, dsdy2) * texW;
maxV = MAX2(dtdx2, dtdy2) * texH;
rho = MAX2(maxU, maxV);
- lambda = util_fast_log2(rho);
+ lambda = logf2(rho);
return lambda;
}
#endif
diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c
index 381eb343812..28bd57be8a1 100644
--- a/src/mesa/swrast/s_texfilter.c
+++ b/src/mesa/swrast/s_texfilter.c
@@ -1961,7 +1961,7 @@ sample_lambda_2d_aniso(struct gl_context *ctx,
/* note: we need to have Pmin=sqrt(Pmin2) here, but we can avoid
* this since 0.5*log(x) = log(sqrt(x))
*/
- lod = 0.5f * util_fast_log2(Pmin2);
+ lod = 0.5f * log2f(Pmin2);
if (adjustLOD) {
/* from swrast/s_texcombine.c _swrast_texture_span */