Module: Mesa Branch: master Commit: bcf4562528ee0d176923b33a3e8995d4d282477a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcf4562528ee0d176923b33a3e8995d4d282477a
Author: Rob Clark <[email protected]> Date: Thu Mar 4 11:24:49 2021 -0800 freedreno: Fix u_blitter constant-buffer leak We didn't see this before without threaded_context because we (normally) wouldn't upload cb0 (the slot u_blitter uses). But with cb0 getting uploaded we could hit a leak due to constant state only being restored in the fd_blitter_clear() path. Move cb0 save to the one path that uses it. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9323> --- src/gallium/drivers/freedreno/freedreno_blitter.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c index 2953c6c3913..c8863a1f6c9 100644 --- a/src/gallium/drivers/freedreno/freedreno_blitter.c +++ b/src/gallium/drivers/freedreno/freedreno_blitter.c @@ -82,8 +82,6 @@ fd_blitter_pipe_begin(struct fd_context *ctx, bool render_cond, bool discard) { fd_fence_ref(&ctx->last_fence, NULL); - util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, - ctx->constbuf[PIPE_SHADER_FRAGMENT].cb); util_blitter_save_vertex_buffer_slot(ctx->blitter, ctx->vtx.vertexbuf.vb); util_blitter_save_vertex_elements(ctx->blitter, ctx->vtx.vtx); util_blitter_save_vertex_shader(ctx->blitter, ctx->prog.vs); @@ -184,6 +182,9 @@ fd_blitter_clear(struct pipe_context *pctx, unsigned buffers, */ fd_blitter_pipe_begin(ctx, false, false); + util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, + ctx->constbuf[PIPE_SHADER_FRAGMENT].cb); + util_blitter_common_clear_setup(blitter, pfb->width, pfb->height, buffers, NULL, NULL); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
