Module: Mesa Branch: staging/20.0 Commit: 52f1498321d81d278c472e4719f0437866d8cbb8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=52f1498321d81d278c472e4719f0437866d8cbb8
Author: Tapani Pälli <[email protected]> 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: [email protected] Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4831> (cherry picked from commit 46b3cb011fd1c9198aeec33d453206846b579817) --- .pick_status.json | 2 +- src/mesa/state_tracker/st_program.c | 4 +++- 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); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
