gallium: Incorporate the device release in dri_destroy_screen_helper

The code to release the device was actually always used after the call
to this function.

Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23054>
This commit is contained in:
Corentin Noël
2023-05-24 16:02:18 +02:00
committed by Marge Bot
parent 5b96a6cc2f
commit c2d90602ca
4 changed files with 11 additions and 20 deletions
+6 -14
View File
@@ -2291,7 +2291,7 @@ dri2_init_screen(struct dri_screen *screen)
}
if (!pscreen)
goto release_pipe;
goto fail;
screen->throttle = pscreen->get_param(pscreen, PIPE_CAP_THROTTLE);
@@ -2302,7 +2302,7 @@ dri2_init_screen(struct dri_screen *screen)
configs = dri_init_screen_helper(screen, pscreen);
if (!configs)
goto destroy_screen;
goto fail;
screen->can_share_buffer = true;
screen->auto_fake_front = dri_with_format(screen);
@@ -2323,13 +2323,9 @@ dri2_init_screen(struct dri_screen *screen)
return configs;
destroy_screen:
fail:
dri_destroy_screen_helper(screen);
release_pipe:
if (screen->dev)
pipe_loader_release(&screen->dev, 1);
return NULL;
}
@@ -2353,13 +2349,13 @@ dri_swrast_kms_init_screen(struct dri_screen *screen)
#endif
if (!pscreen)
goto release_pipe;
goto fail;
dri2_init_screen_extensions(screen, pscreen, true);
configs = dri_init_screen_helper(screen, pscreen);
if (!configs)
goto destroy_screen;
goto fail;
screen->can_share_buffer = false;
screen->auto_fake_front = dri_with_format(screen);
@@ -2380,13 +2376,9 @@ dri_swrast_kms_init_screen(struct dri_screen *screen)
return configs;
destroy_screen:
fail:
dri_destroy_screen_helper(screen);
release_pipe:
if (screen->dev)
pipe_loader_release(&screen->dev, 1);
#endif // GALLIUM_SOFTPIPE
return NULL;
}
+5 -2
View File
@@ -776,6 +776,11 @@ dri_destroy_screen_helper(struct dri_screen * screen)
if (screen->base.screen)
screen->base.screen->destroy(screen->base.screen);
if (screen->dev) {
pipe_loader_release(&screen->dev, 1);
screen->dev = NULL;
}
mtx_destroy(&screen->opencl_func_mutex);
}
@@ -784,8 +789,6 @@ dri_destroy_screen(struct dri_screen *screen)
{
dri_destroy_screen_helper(screen);
pipe_loader_release(&screen->dev, 1);
free(screen->options.force_gl_vendor);
free(screen->options.force_gl_renderer);
free(screen->options.mesa_extension_override);
-2
View File
@@ -594,8 +594,6 @@ drisw_init_screen(struct dri_screen *screen)
return configs;
fail:
dri_destroy_screen_helper(screen);
if (screen->dev)
pipe_loader_release(&screen->dev, 1);
return NULL;
}
-2
View File
@@ -169,8 +169,6 @@ kopper_init_screen(struct dri_screen *screen)
return configs;
fail:
dri_destroy_screen_helper(screen);
if (screen->dev)
pipe_loader_release(&screen->dev, 1);
return NULL;
}