st/mesa: fix computation of last_level during texture creation
authorMarek Olšák <maraeo@gmail.com>
Sun, 11 Nov 2012 15:29:00 +0000 (16:29 +0100)
committerMarek Olšák <maraeo@gmail.com>
Fri, 23 Nov 2012 00:37:06 +0000 (01:37 +0100)
Array textures were broken.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 6dd839f23a8ee7b6853f7320a2715df44040b358)

src/mesa/state_tracker/st_cb_texture.c

index 0ee0dc4..923a8c9 100644 (file)
@@ -366,10 +366,8 @@ guess_and_alloc_texture(struct st_context *st,
    }
    else {
       /* alloc space for a full mipmap */
-      GLuint l2width = util_logbase2(width);
-      GLuint l2height = util_logbase2(height);
-      GLuint l2depth = util_logbase2(depth);
-      lastLevel = MAX2(MAX2(l2width, l2height), l2depth);
+      lastLevel = _mesa_get_tex_max_num_levels(stObj->base.Target,
+                                               width, height, depth) - 1;
    }
 
    /* Save the level=0 dimensions */