mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
egl: Fix Terminate with shared gbm screens
NOTE: This is a candidate for the 7.11 branch.
This commit is contained in:
parent
3a07d9594a
commit
992680c8b4
3 changed files with 9 additions and 2 deletions
|
|
@ -506,6 +506,8 @@ dri2_create_screen(_EGLDisplay *disp)
|
|||
return EGL_FALSE;
|
||||
}
|
||||
|
||||
dri2_dpy->own_dri_screen = 1;
|
||||
|
||||
extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen);
|
||||
|
||||
if (dri2_dpy->dri2) {
|
||||
|
|
@ -576,10 +578,12 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
|
|||
_eglReleaseDisplayResources(drv, disp);
|
||||
_eglCleanupDisplay(disp);
|
||||
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
if (dri2_dpy->own_dri_screen)
|
||||
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
|
||||
if (dri2_dpy->fd)
|
||||
close(dri2_dpy->fd);
|
||||
dlclose(dri2_dpy->driver);
|
||||
if (dri2_dpy->driver)
|
||||
dlclose(dri2_dpy->driver);
|
||||
|
||||
if (disp->PlatformDisplay == NULL) {
|
||||
switch (disp->Platform) {
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ struct dri2_egl_display
|
|||
int dri2_major;
|
||||
int dri2_minor;
|
||||
__DRIscreen *dri_screen;
|
||||
int own_dri_screen;
|
||||
const __DRIconfig **driver_configs;
|
||||
void *driver;
|
||||
__DRIcoreExtension *core;
|
||||
|
|
|
|||
|
|
@ -127,6 +127,8 @@ drm_display_destroy(struct native_display *ndpy)
|
|||
|
||||
drm_display_fini_modeset(&drmdpy->base);
|
||||
|
||||
/* gbm owns screen */
|
||||
ndpy->screen = NULL;
|
||||
ndpy_uninit(ndpy);
|
||||
|
||||
if (drmdpy->device_name)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue