From 46b3cb011fd1c9198aeec33d453206846b579817 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Thu, 30 Apr 2020 13:03:48 +0300 Subject: [PATCH] st/mesa: destroy only own program variants when program is released MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Earlier commit tried to achieve this but actually did more. This makes sure the variants for other contexts continue to live. Fixes: de3d7dbed52 ("mesa/st: release variants for active programs before unref") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2865 Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Tapani Pälli Reviewed-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_program.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 3fa5ff7b74c..cb9fcfdbdd6 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -70,6 +70,8 @@ #include "cso_cache/cso_context.h" +static void +destroy_program_variants(struct st_context *st, struct gl_program *target); static void set_affected_state_flags(uint64_t *states, @@ -345,7 +347,7 @@ st_release_program(struct st_context *st, struct st_program **p) if (!*p) return; - st_release_variants(st, *p); + destroy_program_variants(st, &((*p)->Base)); st_reference_prog(st, p, NULL); } -- 2.30.2