From ce7e1ca1fad901da425ab64866bcbe59bd353ee8 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 2 May 2024 08:15:56 -0400 Subject: [PATCH] frontends/dri: always init opencl_func_mutex in InitScreen hooks this otherwise leads to a mismatch where some types of screen may have the mutex initialized while others don't, in which case dri_release_screen() will attempt to destroy an uninitialized mutex cc: mesa-stable Reviewed-by: Adam Jackson Part-of: (cherry picked from commit bc15c95c7afe56cc0408aa2ba02a5a21f766547b) --- .pick_status.json | 2 +- src/gallium/frontends/dri/drisw.c | 2 ++ src/gallium/frontends/dri/kopper.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index dc04f850ce3..b4cef18018e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -504,7 +504,7 @@ "description": "frontends/dri: always init opencl_func_mutex in InitScreen hooks", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/frontends/dri/drisw.c b/src/gallium/frontends/dri/drisw.c index 777707c04dc..4c9b66cedfb 100644 --- a/src/gallium/frontends/dri/drisw.c +++ b/src/gallium/frontends/dri/drisw.c @@ -546,6 +546,8 @@ drisw_init_screen(struct dri_screen *screen) struct pipe_screen *pscreen = NULL; const struct drisw_loader_funcs *lf = &drisw_lf; + (void) mtx_init(&screen->opencl_func_mutex, mtx_plain); + screen->swrast_no_present = debug_get_option_swrast_no_present(); if (loader->base.version >= 4) { diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c index e42035fa426..d247f2223c7 100644 --- a/src/gallium/frontends/dri/kopper.c +++ b/src/gallium/frontends/dri/kopper.c @@ -115,6 +115,8 @@ kopper_init_screen(struct dri_screen *screen) const __DRIconfig **configs; struct pipe_screen *pscreen = NULL; + (void) mtx_init(&screen->opencl_func_mutex, mtx_plain); + if (!screen->kopper_loader) { fprintf(stderr, "mesa: Kopper interface not found!\n" " Ensure the versions of %s built with this version of Zink are\n"