Mesa (master): intel: fix broken sw generate mipmap path

Brian Paul brianp at kemper.freedesktop.org
Tue Oct 13 16:38:36 UTC 2009


Module: Mesa
Branch: master
Commit: 83f4e72009e2ee03ec1175bd3e6e309e605c2bd1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=83f4e72009e2ee03ec1175bd3e6e309e605c2bd1

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Oct 13 10:37:39 2009 -0600

intel: fix broken sw generate mipmap path

Need to restore code that fixed up the intel_texture_image state.

---

 src/mesa/drivers/dri/intel/intel_tex.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c
index 3cbc379..215a534 100644
--- a/src/mesa/drivers/dri/intel/intel_tex.c
+++ b/src/mesa/drivers/dri/intel/intel_tex.c
@@ -177,6 +177,28 @@ intelGenerateMipmap(GLcontext *ctx, GLenum target,
       intel_tex_map_level_images(intel, intelObj, texObj->BaseLevel);
       _mesa_generate_mipmap(ctx, target, texObj);
       intel_tex_unmap_level_images(intel, intelObj, texObj->BaseLevel);
+
+      {
+         GLuint nr_faces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
+         GLuint face, i;
+         /* Update the level information in our private data in the new images,
+          * since it didn't get set as part of a normal TexImage path.
+          */
+         for (face = 0; face < nr_faces; face++) {
+            for (i = texObj->BaseLevel + 1; i < texObj->MaxLevel; i++) {
+               struct intel_texture_image *intelImage =
+                  intel_texture_image(texObj->Image[face][i]);
+               if (!intelImage)
+                  break;
+               intelImage->level = i;
+               intelImage->face = face;
+               /* Unreference the miptree to signal that the new Data is a
+                * bare pointer from mesa.
+                */
+               intel_miptree_release(intel, &intelImage->mt);
+            }
+         }
+      }
    }
    else {
       _mesa_meta_GenerateMipmap(ctx, target, texObj);




More information about the mesa-commit mailing list