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 <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29021>
This commit is contained in:
Mike Blumenkrantz
2024-05-02 08:15:56 -04:00
committed by Marge Bot
parent a1225e81c9
commit bc15c95c7a
2 changed files with 4 additions and 0 deletions

View File

@@ -582,6 +582,8 @@ drisw_init_screen(struct dri_screen *screen, bool driver_name_is_inferred)
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) {

View File

@@ -116,6 +116,8 @@ kopper_init_screen(struct dri_screen *screen, bool driver_name_is_inferred)
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"