Mesa (master): st/xorg: Cleanly shutdown

Jakob Bornecrantz wallbraker at kemper.freedesktop.org
Tue Oct 20 16:15:13 UTC 2009


Module: Mesa
Branch: master
Commit: a9f71b3bba86771be56ff1def716beb370decd22
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9f71b3bba86771be56ff1def716beb370decd22

Author: Jakob Bornecrantz <jakob at vmware.com>
Date:   Tue Oct 20 17:18:25 2009 +0200

st/xorg: Cleanly shutdown

---

 src/gallium/state_trackers/xorg/xorg_driver.c   |    5 ++++-
 src/gallium/state_trackers/xorg/xorg_renderer.c |   10 ++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c
index 2df954f..7da1042 100644
--- a/src/gallium/state_trackers/xorg/xorg_driver.c
+++ b/src/gallium/state_trackers/xorg/xorg_driver.c
@@ -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;
 
diff --git a/src/gallium/state_trackers/xorg/xorg_renderer.c b/src/gallium/state_trackers/xorg/xorg_renderer.c
index 3dd5e6e..393f3fa 100644
--- a/src/gallium/state_trackers/xorg/xorg_renderer.c
+++ b/src/gallium/state_trackers/xorg/xorg_renderer.c
@@ -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;
    }
 }
 




More information about the mesa-commit mailing list