[Mesa-dev] [PATCH] st/mesa: fix sampler view leak in st_DrawAtlasBitmaps()

Roland Scheidegger sroland at vmware.com
Thu Apr 14 21:47:54 UTC 2016


Am 14.04.2016 um 23:12 schrieb Brian Paul:
> I neglected to free the sampler view which was created earlier in the
> function.  So for each glCallLists() command that used the bitmap atlas
> to draw text, we'd leak a smpler view object.
> 
> Also, check for st_create_texture_sampler_view() failure and record
> GL_OUT_OF_MEMORY.
> 
> Cc: "11.1 11.2" <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/state_tracker/st_cb_bitmap.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
> index 4fd2dfe..b4d04b4 100644
> --- a/src/mesa/state_tracker/st_cb_bitmap.c
> +++ b/src/mesa/state_tracker/st_cb_bitmap.c
> @@ -704,6 +704,10 @@ st_DrawAtlasBitmaps(struct gl_context *ctx,
>     st_validate_state(st, ST_PIPELINE_RENDER);
>  
>     sv = st_create_texture_sampler_view(pipe, stObj->pt);
> +   if (!sv) {
> +      _mesa_error(ctx, GL_OUT_OF_MEMORY, "glCallLists(bitmap text)");
> +      return;
> +   }
>  
>     setup_render_state(ctx, sv, color, true);
>  
> @@ -793,6 +797,8 @@ st_DrawAtlasBitmaps(struct gl_context *ctx,
>  
>     pipe_resource_reference(&vb.buffer, NULL);
>  
> +   pipe_sampler_view_reference(&sv, NULL);
> +
>     /* We uploaded modified constants, need to invalidate them. */
>     st->dirty.mesa |= _NEW_PROGRAM_CONSTANTS;
>  }
> 

I don't think this applies to 11.1. Otherwise,
Reviewed-by: Roland Scheidegger <sroland at vmware.com>



More information about the mesa-dev mailing list