mesa: release references to image textures when a context is destroyed

When a texture is still bound as an image and the context it was bound in
is destroyed but not the texture, then the texture will still hold the
resource and will not be freed when it is finally destroyed. Hence, release
these references when the context is destroyed.

This leak was triggered by virglrenderer:
https://gitlab.freedesktop.org/virgl/virglrenderer/issues/86

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Gert Wollny
2019-02-02 13:17:16 +01:00
committed by Gert Wollny
parent f1f3640f6f
commit b0b3de2be7
3 changed files with 15 additions and 0 deletions

View File

@@ -129,6 +129,7 @@
#include "util/disk_cache.h"
#include "util/strtod.h"
#include "stencil.h"
#include "shaderimage.h"
#include "texcompress_s3tc.h"
#include "texstate.h"
#include "transformfeedback.h"
@@ -1345,6 +1346,7 @@ _mesa_free_context_data( struct gl_context *ctx )
_mesa_free_buffer_objects(ctx);
_mesa_free_eval_data( ctx );
_mesa_free_texture_data( ctx );
_mesa_free_image_textures(ctx);
_mesa_free_matrix_data( ctx );
_mesa_free_pipeline_data(ctx);
_mesa_free_program_data(ctx);