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

Reply via email to