diff options
author | Brian Paul <[email protected]> | 2016-04-14 15:07:53 -0600 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2016-04-27 13:14:30 +0100 |
commit | 1102ea7171899941b69380e63c382996f46a47b4 (patch) | |
tree | 42fc71fca44f0cdd22ae6276639091b15f0759d2 /src/mesa | |
parent | 048247115bf89fe52aecc2dd8e23acc7ad17abd4 (diff) |
st/mesa: fix sampler view leak in st_DrawAtlasBitmaps()
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 sampler view object.
Also, check for st_create_texture_sampler_view() failure and record
GL_OUT_OF_MEMORY.
Cc: "11.1 11.2" <[email protected]>
Reviewed-by: Charmaine Lee <[email protected]>
(cherry picked from commit aed975d5c510135c54252746b44d663d094ecb1e)
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/state_tracker/st_cb_bitmap.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index 4fd2dfef8cc..b4d04b4de5f 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; } |