aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/teximage.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-06-03 08:22:14 +0200
committermarha <marha@users.sourceforge.net>2011-06-03 08:22:14 +0200
commit6aea3a7470dfb2c513378b82c27f0ad87afda7f3 (patch)
treecefb863bdf986b740d8f9475514df400a56ff003 /mesalib/src/mesa/main/teximage.c
parent5e835037510a4ccf001fb8f0a9aed29a28072fec (diff)
parentcda19b1d226d565f1ca4327aeae827c621b3dfd6 (diff)
downloadvcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.tar.gz
vcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.tar.bz2
vcxsrv-6aea3a7470dfb2c513378b82c27f0ad87afda7f3.zip
Merge remote-tracking branch 'origin/released'
Conflicts: mesalib/configs/linux-dri mesalib/src/gallium/auxiliary/util/u_math.h mesalib/src/mapi/glapi/gen/Makefile mesalib/src/mapi/glapi/glapi_mapi_tmp.h mesalib/src/mapi/glapi/glapi_sparc.S mesalib/src/mapi/glapi/glapi_x86-64.S mesalib/src/mapi/glapi/glapi_x86.S mesalib/src/mapi/glapi/glapitable.h mesalib/src/mapi/glapi/glapitemp.h mesalib/src/mapi/glapi/glprocs.h mesalib/src/mesa/drivers/dri/Makefile.template mesalib/src/mesa/main/dd.h mesalib/src/mesa/main/fbobject.c mesalib/src/mesa/main/remap_helper.h mesalib/src/mesa/main/shaderapi.c mesalib/src/mesa/main/teximage.c mesalib/src/mesa/main/uniforms.c mesalib/src/mesa/state_tracker/st_format.c mesalib/src/mesa/vbo/vbo_exec_array.c xorg-server/configure.ac xorg-server/dix/main.c xorg-server/dix/window.c xorg-server/hw/xquartz/GL/indirect.c xorg-server/hw/xquartz/X11Application.m xorg-server/hw/xquartz/darwin.c xorg-server/hw/xquartz/darwin.h xorg-server/hw/xquartz/mach-startup/Makefile.am xorg-server/hw/xquartz/pbproxy/app-main.m xorg-server/hw/xquartz/pbproxy/pbproxy.h xorg-server/hw/xquartz/pbproxy/x-selection.m xorg-server/hw/xquartz/xpr/xpr.h xorg-server/hw/xquartz/xpr/xprEvent.c xorg-server/hw/xquartz/xpr/xprScreen.c xorg-server/include/privates.h xorg-server/include/protocol-versions.h xorg-server/test/Makefile.am xorg-server/xfixes/cursor.c xorg-server/xfixes/xfixes.c xorg-server/xkeyboard-config/configure.in xorg-server/xkeyboard-config/rules/base.extras.xml.in xorg-server/xkeyboard-config/rules/base.xml.in xorg-server/xkeyboard-config/symbols/de xorg-server/xkeyboard-config/symbols/lk xorg-server/xkeyboard-config/symbols/ru
Diffstat (limited to 'mesalib/src/mesa/main/teximage.c')
-rw-r--r--mesalib/src/mesa/main/teximage.c35
1 files changed, 11 insertions, 24 deletions
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index cf8a1d486..fa9783892 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -81,31 +81,18 @@ _mesa_free_texmemory(void *m)
/*
- * Compute floor(log_base_2(n)).
- * If n < 0 return -1.
+ * Returns the floor form of binary logarithm for a 32-bit integer.
*/
-static int
-logbase2( int n )
-{
- GLint i = 1;
- GLint log2 = 0;
-
- if (n < 0)
- return -1;
-
- if (n == 0)
- return 0;
-
- while ( n > i ) {
- i *= 2;
- log2++;
- }
- if (i != n) {
- return log2 - 1;
- }
- else {
- return log2;
- }
+static GLuint
+logbase2(GLuint n)
+{
+ GLuint pos = 0;
+ if (n >= 1<<16) { n >>= 16; pos += 16; }
+ if (n >= 1<< 8) { n >>= 8; pos += 8; }
+ if (n >= 1<< 4) { n >>= 4; pos += 4; }
+ if (n >= 1<< 2) { n >>= 2; pos += 2; }
+ if (n >= 1<< 1) { pos += 1; }
+ return pos;
}