zink: explicitly unref old fb object when setting new one
this object has a ref from being created, and its lifetime is expected to be a single frame, so remove that initial ref when we expect to stop using it Closes: #2648 Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4768>
This commit is contained in:
committed by
Marge Bot
parent
d3f0022a43
commit
acc56300dc
@@ -638,7 +638,11 @@ zink_set_framebuffer_state(struct pipe_context *pctx,
|
||||
|
||||
util_copy_framebuffer_state(&ctx->fb_state, state);
|
||||
|
||||
struct zink_framebuffer *fb = create_framebuffer(ctx);
|
||||
struct zink_framebuffer *fb = ctx->framebuffer;
|
||||
/* explicitly unref previous fb to ensure it gets destroyed */
|
||||
if (fb)
|
||||
zink_framebuffer_reference(screen, &fb, NULL);
|
||||
fb = create_framebuffer(ctx);
|
||||
zink_framebuffer_reference(screen, &ctx->framebuffer, fb);
|
||||
zink_render_pass_reference(screen, &ctx->gfx_pipeline_state.render_pass, fb->rp);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user