st/mesa: check gl_texture_object::GenerateMipmap field when allocating texmem
authorBrian Paul <brianp@vmware.com>
Mon, 28 Sep 2009 16:03:58 +0000 (10:03 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 28 Sep 2009 16:03:58 +0000 (10:03 -0600)
In guess_and_alloc_texture() use the gl_texture_object::GenerateMipmap
field as another hint as to whether to allocate space for a whole mipmap.

src/mesa/state_tracker/st_cb_texture.c

index c0fba8641b32283316c334b0a524ba77f5633535..771a0e2bbdfc18f4c517fb659cf1c22f0fcdf807 100644 (file)
@@ -328,10 +328,13 @@ guess_and_alloc_texture(struct st_context *st,
         stObj->base.MinFilter == GL_LINEAR ||
         stImage->base._BaseFormat == GL_DEPTH_COMPONENT ||
         stImage->base._BaseFormat == GL_DEPTH_STENCIL_EXT) &&
+       !stObj->base.GenerateMipmap &&
        stImage->level == firstLevel) {
+      /* only alloc space for a single mipmap level */
       lastLevel = firstLevel;
    }
    else {
+      /* alloc space for a full mipmap */
       GLuint l2width = util_logbase2(width);
       GLuint l2height = util_logbase2(height);
       GLuint l2depth = util_logbase2(depth);