summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.pick_status.json2
-rw-r--r--src/mesa/state_tracker/st_program.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json
index f602586772a..9b7f9f57a2e 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -382,7 +382,7 @@
"description": "st/mesa: destroy only own program variants when program is released",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "de3d7dbed521c40344c9f8b2b505b6e2b13a7636"
},
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index 6585945f343..7a485acf8d0 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -67,6 +67,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,
@@ -342,7 +344,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);
}