From edcad555f822214739af81dc1b2044878af9bc09 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 4 Nov 2020 20:50:08 -0500 Subject: [PATCH] zink: stop leaking programs gfx and compute programs both end up with an extra ref from creation, so they both need to lose a ref during creation after they get their shader refs Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index fe39fd7c3ac..f47b3754645 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -559,6 +559,7 @@ zink_create_gfx_program(struct zink_context *ctx, zink_gfx_program_reference(screen, NULL, prog); } } + p_atomic_dec(&prog->base.reference.count); if (!zink_descriptor_program_init(ctx, stages, (struct zink_program*)prog)) goto fail; @@ -653,7 +654,6 @@ zink_create_compute_program(struct zink_context *ctx, struct zink_shader *shader equals_compute_pipeline_state); _mesa_set_add(shader->programs, comp); - zink_compute_program_reference(screen, NULL, comp); comp->shader = shader; struct zink_shader *stages[ZINK_SHADER_COUNT] = {};