From b3ebc229dcd5d1cc882443f9b851890b00cd9dbc Mon Sep 17 00:00:00 2001 From: Nicolai Hähnle Date: Tue, 6 Sep 2016 14:41:51 +0200 Subject: gallium/u_math: add util_logbase2_ceil MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For finding the exponent of the next power of two. Reviewed-by: Marek Olšák --- src/gallium/auxiliary/util/u_math.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/gallium/auxiliary/util') diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h index a9232711bf1..2ab5f03a662 100644 --- a/src/gallium/auxiliary/util/u_math.h +++ b/src/gallium/auxiliary/util/u_math.h @@ -429,6 +429,18 @@ util_logbase2(unsigned n) #endif } +/** + * Returns the ceiling of log n base 2, and 0 when n == 0. Equivalently, + * returns the smallest x such that n <= 2**x. + */ +static inline unsigned +util_logbase2_ceil(unsigned n) +{ + if (n <= 1) + return 0; + + return 1 + util_logbase2(n - 1); +} /** * Returns the smallest power of two >= x -- cgit v1.2.3