replace _mesa_next_pow_two_* with util_next_power_of_two_*
The 64 bit variant in imports.h isn't even used. Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3024>
This commit is contained in:
@@ -129,7 +129,7 @@ static void compute_tex_image_offset(radeonContextPtr rmesa, radeon_mipmap_tree
|
||||
radeon_mipmap_level *lvl = &mt->levels[level];
|
||||
GLuint height;
|
||||
|
||||
height = _mesa_next_pow_two_32(lvl->height);
|
||||
height = util_next_power_of_two(lvl->height);
|
||||
|
||||
lvl->rowstride = get_texture_image_row_stride(rmesa, mt->mesaFormat, lvl->width, mt->tilebits, mt->target);
|
||||
lvl->size = get_texture_image_size(mt->mesaFormat, lvl->rowstride, height, lvl->depth, mt->tilebits);
|
||||
|
||||
@@ -190,58 +190,6 @@ static inline int IFLOOR(float f)
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Round given integer to next higer power of two
|
||||
* If X is zero result is undefined.
|
||||
*
|
||||
* Source for the fallback implementation is
|
||||
* Sean Eron Anderson's webpage "Bit Twiddling Hacks"
|
||||
* http://graphics.stanford.edu/~seander/bithacks.html
|
||||
*
|
||||
* When using builtin function have to do some work
|
||||
* for case when passed values 1 to prevent hiting
|
||||
* undefined result from __builtin_clz. Undefined
|
||||
* results would be different depending on optimization
|
||||
* level used for build.
|
||||
*/
|
||||
static inline int32_t
|
||||
_mesa_next_pow_two_32(uint32_t x)
|
||||
{
|
||||
#ifdef HAVE___BUILTIN_CLZ
|
||||
uint32_t y = (x != 1);
|
||||
return (1 + y) << ((__builtin_clz(x - y) ^ 31) );
|
||||
#else
|
||||
x--;
|
||||
x |= x >> 1;
|
||||
x |= x >> 2;
|
||||
x |= x >> 4;
|
||||
x |= x >> 8;
|
||||
x |= x >> 16;
|
||||
x++;
|
||||
return x;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline int64_t
|
||||
_mesa_next_pow_two_64(uint64_t x)
|
||||
{
|
||||
#ifdef HAVE___BUILTIN_CLZLL
|
||||
uint64_t y = (x != 1);
|
||||
STATIC_ASSERT(sizeof(x) == sizeof(long long));
|
||||
return (1 + y) << ((__builtin_clzll(x - y) ^ 63));
|
||||
#else
|
||||
x--;
|
||||
x |= x >> 1;
|
||||
x |= x >> 2;
|
||||
x |= x >> 4;
|
||||
x |= x >> 8;
|
||||
x |= x >> 16;
|
||||
x |= x >> 32;
|
||||
x++;
|
||||
return x;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Returns the floor form of binary logarithm for a 32-bit integer.
|
||||
|
||||
Reference in New Issue
Block a user