intel: Avoid taking logbase2 of several things that we max.
authorEric Anholt <eric@anholt.net>
Wed, 3 Nov 2010 03:30:41 +0000 (20:30 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 3 Nov 2010 13:08:27 +0000 (06:08 -0700)
logbase2(max(width, height, depth)) ==
max(logbase2(width), logbase2(height), logbase2(depth)), but in 60
bytes less code.

src/mesa/drivers/dri/intel/intel_tex_image.c

index 35f3d7d38290c03677f6a2f411da76a6a2c892af..05d72bab8cff92bf4f46bfa90cd9259e23ee6aa2 100644 (file)
@@ -66,7 +66,6 @@ guess_and_alloc_mipmap_tree(struct intel_context *intel,
    GLuint width = intelImage->base.Width;
    GLuint height = intelImage->base.Height;
    GLuint depth = intelImage->base.Depth;
-   GLuint l2width, l2height, l2depth;
    GLuint i, comp_byte = 0;
    GLuint texelBytes;
 
@@ -114,10 +113,7 @@ guess_and_alloc_mipmap_tree(struct intel_context *intel,
       lastLevel = firstLevel;
    }
    else {
-      l2width = logbase2(width);
-      l2height = logbase2(height);
-      l2depth = logbase2(depth);
-      lastLevel = firstLevel + MAX2(MAX2(l2width, l2height), l2depth);
+      lastLevel = firstLevel + logbase2(MAX2(MAX2(width, height), depth));
    }
 
    assert(!intelObj->mt);