From: Jakob Bornecrantz Date: Wed, 30 Dec 2009 03:46:12 +0000 (+0100) Subject: st/xorg: On close wait on fences and then destroy the screen X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d34fdf149d250275e819ca58554a41a8bff82785;p=mesa.git st/xorg: On close wait on fences and then destroy the screen --- diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index ee01ba0dcf6..ccaa0c68ef7 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -255,9 +255,19 @@ static Bool drv_close_resource_management(ScrnInfoPtr pScrn) { modesettingPtr ms = modesettingPTR(pScrn); + int i; - if (ms->screen) + if (ms->screen) { + assert(ms->ctx == NULL); + + for (i = 0; i < XORG_NR_FENCES; i++) { + if (ms->fence[i]) { + ms->screen->fence_finish(ms->screen, ms->fence[i], 0); + ms->screen->fence_reference(ms->screen, &ms->fence[i], NULL); + } + } ms->screen->destroy(ms->screen); + } ms->screen = NULL; if (ms->api && ms->api->destroy)