mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 16:20:13 +01:00
gallium: increase table size for fast log/pow functions
The various conformance tests pass now.
This commit is contained in:
parent
6afab9001e
commit
7e584a70c4
2 changed files with 6 additions and 4 deletions
|
|
@ -52,7 +52,7 @@ init_log2_table(void)
|
|||
{
|
||||
unsigned i;
|
||||
for (i = 0; i < LOG2_TABLE_SIZE; i++)
|
||||
log2_table[i] = (float) log2(1.0 + i * (1.0 / LOG2_TABLE_SIZE));
|
||||
log2_table[i] = (float) log2(1.0 + i * (1.0 / LOG2_TABLE_SCALE));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -246,8 +246,9 @@ util_fast_exp(float x)
|
|||
}
|
||||
|
||||
|
||||
#define LOG2_TABLE_SIZE_LOG2 8
|
||||
#define LOG2_TABLE_SIZE (1 << LOG2_TABLE_SIZE_LOG2)
|
||||
#define LOG2_TABLE_SIZE_LOG2 16
|
||||
#define LOG2_TABLE_SCALE (1 << LOG2_TABLE_SIZE_LOG2)
|
||||
#define LOG2_TABLE_SIZE (LOG2_TABLE_SCALE + 1)
|
||||
extern float log2_table[LOG2_TABLE_SIZE];
|
||||
|
||||
|
||||
|
|
@ -258,7 +259,8 @@ util_fast_log2(float x)
|
|||
float epart, mpart;
|
||||
num.f = x;
|
||||
epart = (float)(((num.i & 0x7f800000) >> 23) - 127);
|
||||
mpart = log2_table[(num.i & 0x007fffff) >> (23 - LOG2_TABLE_SIZE_LOG2)];
|
||||
/* mpart = log2_table[mantissa*LOG2_TABLE_SCALE + 0.5] */
|
||||
mpart = log2_table[((num.i & 0x007fffff) + (1 << (22 - LOG2_TABLE_SIZE_LOG2))) >> (23 - LOG2_TABLE_SIZE_LOG2)];
|
||||
return epart + mpart;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue