mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
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" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
(cherry picked from commit aed975d5c5)
This commit is contained in:
parent
048247115b
commit
1102ea7171
1 changed files with 6 additions and 0 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue