Mesa (master): st/mesa: destroy only own program variants when program is released
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon May 4 13:50:53 UTC 2020
Module: Mesa
Branch: master
Commit: 46b3cb011fd1c9198aeec33d453206846b579817
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46b3cb011fd1c9198aeec33d453206846b579817
Author: Tapani Pälli <tapani.palli at intel.com>
Date: Thu Apr 30 13:03:48 2020 +0300
st/mesa: destroy only own program variants when program is released
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 at lists.freedesktop.org
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4831>
---
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);
}
More information about the mesa-commit
mailing list