mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
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: bd4e769515
("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>
This commit is contained in:
parent
2e5b214506
commit
fde25a6ed9
2 changed files with 3 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue