From 0a8cba9a65e6ec1159a08725d2101e7eabb4526b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 17 Feb 2009 10:26:58 +1000 Subject: radeon: steal miptree optimisation from intel codebase This replaces a miptree if it won't distrub anything else. --- src/mesa/drivers/dri/radeon/radeon_texture.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/mesa/drivers') diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index 4aa081ca34..6949ee4502 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -517,6 +517,16 @@ static void radeon_teximage( /* Allocate memory for image */ radeonFreeTexImageData(ctx, texImage); /* Mesa core only clears texImage->Data but not image->mt */ + if (t->mt && + t->mt->firstLevel == level && + t->mt->lastLevel == level && + t->mt->target != GL_TEXTURE_CUBE_MAP_ARB && + !radeon_miptree_matches_image(t->mt, texImage, face, level)) { + fprintf(stderr,"freeing old miptree\n"); + radeon_miptree_unreference(t->mt); + t->mt = NULL; + } + if (!t->mt) radeon_try_alloc_miptree(rmesa, t, texImage, face, level); if (t->mt && radeon_miptree_matches_image(t->mt, texImage, face, level)) { -- cgit v1.2.3