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