mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 01:18:06 +02:00
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 c230767d69)
This commit is contained in:
parent
31865904d8
commit
2223615e0a
1 changed files with 3 additions and 0 deletions
|
|
@ -780,6 +780,9 @@ _mesa_free_texture_data(GLcontext *ctx)
|
|||
|
||||
/* unreference current textures */
|
||||
for (u = 0; u < MAX_TEXTURE_IMAGE_UNITS; 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(&ctx->Texture.Unit[u].CurrentTex[tgt], NULL);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue