Module: Mesa Branch: master Commit: 83f4e72009e2ee03ec1175bd3e6e309e605c2bd1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=83f4e72009e2ee03ec1175bd3e6e309e605c2bd1
Author: Brian Paul <[email protected]> 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); _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
