st/mesa: improve the guess_and_alloc_texture() heuristic
authorBrian Paul <brianp@vmware.com>
Fri, 19 Oct 2012 00:00:50 +0000 (18:00 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 19 Oct 2012 00:00:50 +0000 (18:00 -0600)
If GL_BASE_LEVEL==0 and GL_MAX_LEVEL==0 that's a pretty good hint that
there'll be a single mipmap level in the texture.

Google Earth sets the texture's state this way before the first glTexImage
call.  This saves a bit of texture memory.

src/mesa/state_tracker/st_cb_texture.c

index 5bf3dc699b7e8aeae9b2b155d7dfbb02f8912e4e..218c8d1e37501150340aef3b96a06944719b9700 100644 (file)
@@ -375,6 +375,8 @@ guess_and_alloc_texture(struct st_context *st,
     */
    if ((stObj->base.Sampler.MinFilter == GL_NEAREST ||
         stObj->base.Sampler.MinFilter == GL_LINEAR ||
+        (stObj->base.BaseLevel == 0 &&
+         stObj->base.MaxLevel == 0) ||
         stImage->base._BaseFormat == GL_DEPTH_COMPONENT ||
         stImage->base._BaseFormat == GL_DEPTH_STENCIL_EXT) &&
        !stObj->base.GenerateMipmap &&