[Mesa-dev] [PATCH] mesa: do not leak ctx->Shader.ReferencedProgram references
Timothy Arceri
tarceri at itsqueeze.com
Fri May 25 00:39:04 UTC 2018
Pushed. Thanks for the patch.
On 25/05/18 03:56, Jose Dapena Paz wrote:
> When glUseProgram is used, references to the included shaders are
> added in ctx->Shader.ReferencedProgram. But those references are not
> decreased when the shader data is deallocated. Thus, those shaders
> are leaked.
>
> Explicitely remove the pending references to these shaders.
>
> Fixes: e6506b3cd23 ("mesa: retain gl_shader_programs after glDeleteProgram if they are in use")
> Cc: Timothy Arceri <tarceri at itsqueeze.com>
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/main/shaderapi.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
> index caa42541cad..f7080847cc1 100644
> --- a/src/mesa/main/shaderapi.c
> +++ b/src/mesa/main/shaderapi.c
> @@ -159,6 +159,9 @@ _mesa_free_shader_state(struct gl_context *ctx)
> {
> for (int i = 0; i < MESA_SHADER_STAGES; i++) {
> _mesa_reference_program(ctx, &ctx->Shader.CurrentProgram[i], NULL);
> + _mesa_reference_shader_program(ctx,
> + &ctx->Shader.ReferencedPrograms[i],
> + NULL);
> }
> _mesa_reference_shader_program(ctx, &ctx->Shader.ActiveProgram, NULL);
>
>
More information about the mesa-dev
mailing list