Mesa (master): r300g: fix context destroy under hyperz

Dave Airlie airlied at kemper.freedesktop.org
Tue Aug 17 09:06:10 UTC 2010


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Aug 17 19:01:18 2010 +1000

r300g: fix context destroy under hyperz

we were destroying the mm before unrefing all the objects, so segfault.

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r300/r300_context.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index a83ad89..852d88a 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -119,15 +119,15 @@ static void r300_destroy_context(struct pipe_context* context)
     if (r300->upload_ib)
         u_upload_destroy(r300->upload_ib);
 
-    if (r300->zmask_mm)
-        r300_hyperz_destroy_mm(r300);
-
     if (r300->tran.translate_cache)
         translate_cache_destroy(r300->tran.translate_cache);
 
     /* XXX: This function assumes r300->query_list was initialized */
     r300_release_referenced_objects(r300);
 
+    if (r300->zmask_mm)
+        r300_hyperz_destroy_mm(r300);
+
     if (r300->cs)
         r300->rws->cs_destroy(r300->cs);
 




More information about the mesa-commit mailing list