st/xorg: Cleanly shutdown

This commit is contained in:
Jakob Bornecrantz 2009-10-20 17:18:25 +02:00
parent 5f8f14e5ca
commit a9f71b3bba
2 changed files with 10 additions and 5 deletions

View file

@ -541,6 +541,9 @@ ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
return FALSE;
}
if (!ms->api)
ms->api = drm_api_create();
if (!ms->screen) {
ms->screen = ms->api->create_screen(ms->api, ms->fd, NULL);
@ -774,7 +777,7 @@ CloseScreen(int scrnIndex, ScreenPtr pScreen)
if (ms->exa)
xorg_exa_close(pScrn);
if (ms->api->destroy)
if (ms->api && ms->api->destroy)
ms->api->destroy(ms->api);
ms->api = NULL;

View file

@ -283,13 +283,15 @@ void renderer_destroy(struct xorg_renderer *r)
if (fsbuf && fsbuf->buffer)
pipe_buffer_reference(&fsbuf->buffer, NULL);
if (r->shaders) {
xorg_shaders_destroy(r->shaders);
r->shaders = NULL;
}
if (r->cso) {
cso_release_all(r->cso);
cso_destroy_context(r->cso);
}
if (r->shaders) {
xorg_shaders_destroy(r->shaders);
r->cso = NULL;
}
}