summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nvc0/nvc0_screen.c
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2011-01-04 01:14:00 +0100
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2011-01-04 16:14:46 +0100
commit6de94e1012498b6859d9796f2836a162bb0ca4bc (patch)
treead57341116996f0f4d83364c4f1e268a6c346014 /src/gallium/drivers/nvc0/nvc0_screen.c
parent471025929c893d223668814ad0f8e2bee76aac63 (diff)
nvc0: delete memory caches and fence on screen destruction
Diffstat (limited to 'src/gallium/drivers/nvc0/nvc0_screen.c')
-rw-r--r--src/gallium/drivers/nvc0/nvc0_screen.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c
index a5641ba90f..e149b90731 100644
--- a/src/gallium/drivers/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c
@@ -197,6 +197,9 @@ nvc0_screen_destroy(struct pipe_screen *pscreen)
{
struct nvc0_screen *screen = nvc0_screen(pscreen);
+ nvc0_fence_wait(screen->fence.current);
+ nvc0_fence_reference(&screen->fence.current, NULL);
+
nouveau_bo_ref(NULL, &screen->text);
nouveau_bo_ref(NULL, &screen->tls);
nouveau_bo_ref(NULL, &screen->txc);
@@ -208,6 +211,10 @@ nvc0_screen_destroy(struct pipe_screen *pscreen)
if (screen->tic.entries)
FREE(screen->tic.entries);
+ nvc0_mm_destroy(screen->mm_GART);
+ nvc0_mm_destroy(screen->mm_VRAM);
+ nvc0_mm_destroy(screen->mm_VRAM_fe0);
+
nouveau_grobj_free(&screen->fermi);
nouveau_grobj_free(&screen->eng2d);
nouveau_grobj_free(&screen->m2mf);