From e6eb4df338421e3a0a55cb340565b32b527ee994 Mon Sep 17 00:00:00 2001 From: Patrick Lerda Date: Wed, 29 Mar 2023 21:55:47 +0200 Subject: [PATCH] lima: fix refcnt imbalance related to framebuffer Indeed, the current framebuffer hardcoded cleanup is not sufficient. For instance, this issue is triggered with: "piglit/bin/fbo-depthstencil clear default_fb -samples=2 -auto" while setting GALLIUM_REFCNT_LOG=refcnt.log. cc: mesa-stable Signed-off-by: Patrick Lerda Reviewed-by: Erico Nunes Part-of: (cherry picked from commit 035b84f3085a2ce8b0d0769b66f24df70c95b024) --- .pick_status.json | 2 +- src/gallium/drivers/lima/lima_context.c | 1 + src/gallium/drivers/lima/lima_state.c | 3 --- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 4e3f11ecc18..c94b8203294 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -454,7 +454,7 @@ "description": "lima: fix refcnt imbalance related to framebuffer", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/lima/lima_context.c b/src/gallium/drivers/lima/lima_context.c index d4f1552e0e9..802f308f48e 100644 --- a/src/gallium/drivers/lima/lima_context.c +++ b/src/gallium/drivers/lima/lima_context.c @@ -147,6 +147,7 @@ lima_context_destroy(struct pipe_context *pctx) lima_program_fini(ctx); lima_state_fini(ctx); + util_unreference_framebuffer_state(&ctx->framebuffer.base); if (ctx->blitter) util_blitter_destroy(ctx->blitter); diff --git a/src/gallium/drivers/lima/lima_state.c b/src/gallium/drivers/lima/lima_state.c index badd815a8b5..a7dc87747fb 100644 --- a/src/gallium/drivers/lima/lima_state.c +++ b/src/gallium/drivers/lima/lima_state.c @@ -473,7 +473,4 @@ lima_state_fini(struct lima_context *ctx) util_set_vertex_buffers_mask(so->vb, &so->enabled_mask, NULL, 0, 0, ARRAY_SIZE(so->vb), false); - - pipe_surface_reference(&ctx->framebuffer.base.cbufs[0], NULL); - pipe_surface_reference(&ctx->framebuffer.base.zsbuf, NULL); }