http://bugzilla.novell.com/show_bug.cgi?id=504578
User sndirsch@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=504578#c18
Stefan Dirsch
From 63cde0ea0e2bc85005136c353c363777488804d2 Mon Sep 17 00:00:00 2001 From: Brian Paul
Date: Mon, 11 May 2009 09:47:17 -0600 Subject: [PATCH] mesa: Fixed a texture memory leak
The current texture for any particular texture unit is given an additional reference in update_texture_state(); but if the context is closed before that texture can be released (which is quite frequent in normal use, unless a program unbinds and deletes the texture and renders without it to force a call to update_texture_state(), the memory is lost. This affects general Mesa; but the i965 is particularly affected because it allocates a considerable amount of additional memory for each allocated texture. (cherry picked from master, commit c230767d6956b63a2b101acb48f98823bb5dd31a) --- src/mesa/main/texstate.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index d172c5b..348a2d9 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -802,6 +802,9 @@ _mesa_free_texture_data(GLcontext *ctx) /* unreference current textures */ for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; u++) { struct gl_texture_unit *unit = ctx->Texture.Unit + u; + /* The _Current texture could account for another reference */ + _mesa_reference_texobj(&ctx->Texture.Unit[u]._Current, NULL); + for (tgt = 0; tgt < NUM_TEXTURE_TARGETS; tgt++) { _mesa_reference_texobj(&unit->CurrentTex[tgt], NULL); } -- 1.6.0.2 -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.