mirror of https://gitlab.freedesktop.org/mesa/mesa
egl: Factor some common terminate cleanup up to common code
It's a little difficult to see from the diff, but this is effectively the same calling sequence as before, and more importantly it means the backend only cleans up backend state rather than needing to call up to the core. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824>
This commit is contained in:
parent
a942068fdb
commit
04826cd9fc
|
@ -1225,7 +1225,6 @@ dri2_display_release(_EGLDisplay *disp)
|
|||
if (!p_atomic_dec_zero(&dri2_dpy->ref_count))
|
||||
return;
|
||||
|
||||
_eglCleanupDisplay(disp);
|
||||
dri2_display_destroy(disp);
|
||||
}
|
||||
|
||||
|
@ -1327,9 +1326,6 @@ dri2_egl_surface_free_local_buffers(struct dri2_egl_surface *dri2_surf)
|
|||
static EGLBoolean
|
||||
dri2_terminate(_EGLDisplay *disp)
|
||||
{
|
||||
/* Release all non-current Context/Surfaces. */
|
||||
_eglReleaseDisplayResources(disp);
|
||||
|
||||
dri2_display_release(disp);
|
||||
|
||||
return EGL_TRUE;
|
||||
|
|
|
@ -357,7 +357,6 @@ wgl_display_release(_EGLDisplay *disp)
|
|||
if (!p_atomic_dec_zero(&wgl_dpy->ref_count))
|
||||
return;
|
||||
|
||||
_eglCleanupDisplay(disp);
|
||||
wgl_display_destroy(disp);
|
||||
}
|
||||
|
||||
|
@ -370,9 +369,6 @@ wgl_display_release(_EGLDisplay *disp)
|
|||
static EGLBoolean
|
||||
wgl_terminate(_EGLDisplay *disp)
|
||||
{
|
||||
/* Release all non-current Context/Surfaces. */
|
||||
_eglReleaseDisplayResources(disp);
|
||||
|
||||
wgl_display_release(disp);
|
||||
|
||||
return EGL_TRUE;
|
||||
|
|
|
@ -779,14 +779,9 @@ eglTerminate(EGLDisplay dpy)
|
|||
RETURN_EGL_ERROR(NULL, EGL_BAD_DISPLAY, EGL_FALSE);
|
||||
|
||||
if (disp->Initialized) {
|
||||
_eglReleaseDisplayResources(disp);
|
||||
disp->Driver->Terminate(disp);
|
||||
/* do not reset disp->Driver */
|
||||
disp->ClientAPIsString[0] = 0;
|
||||
disp->Initialized = EGL_FALSE;
|
||||
|
||||
/* Reset blob cache funcs on terminate. */
|
||||
disp->BlobCacheSet = NULL;
|
||||
disp->BlobCacheGet = NULL;
|
||||
_eglCleanupDisplay(disp);
|
||||
}
|
||||
|
||||
simple_mtx_unlock(&disp->Mutex);
|
||||
|
|
|
@ -370,7 +370,13 @@ _eglCleanupDisplay(_EGLDisplay *disp)
|
|||
disp->Configs = NULL;
|
||||
}
|
||||
|
||||
/* XXX incomplete */
|
||||
/* do not reset disp->Driver */
|
||||
disp->ClientAPIsString[0] = 0;
|
||||
disp->Initialized = EGL_FALSE;
|
||||
|
||||
/* Reset blob cache funcs on terminate. */
|
||||
disp->BlobCacheSet = NULL;
|
||||
disp->BlobCacheGet = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue