summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2014-06-17 22:22:56 -0400
committerIlia Mirkin <[email protected]>2014-06-19 01:05:52 -0400
commit5af80f62680b8321c3af565bb57138a71429502c (patch)
tree80490b090e576591e2d2a71956f6f2d1bdae04f0
parent22e9551af0173ddf81d81027e84bb4e27fc6be18 (diff)
nv30: plug some memory leaks on screen destroy and shader compile
Signed-off-by: Ilia Mirkin <[email protected]> Cc: "10.2" <[email protected]>
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_screen.c6
-rw-r--r--src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index fb9378c4ffe..4baabaf7226 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -327,6 +327,12 @@ nv30_screen_destroy(struct pipe_screen *pscreen)
nouveau_fence_ref(NULL, &screen->base.fence.current);
}
+ nouveau_bo_ref(NULL, &screen->notify);
+
+ nouveau_heap_destroy(&screen->query_heap);
+ nouveau_heap_destroy(&screen->vp_exec_heap);
+ nouveau_heap_destroy(&screen->vp_data_heap);
+
nouveau_object_del(&screen->query);
nouveau_object_del(&screen->fence);
nouveau_object_del(&screen->ntfy);
diff --git a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
index 4955226db67..1f1fba202df 100644
--- a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
+++ b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
@@ -1225,6 +1225,7 @@ out:
if(fpc)
{
FREE(fpc->r_temp);
+ FREE(fpc->r_imm);
util_dynarray_fini(&fpc->if_stack);
util_dynarray_fini(&fpc->label_relocs);
util_dynarray_fini(&fpc->imm_data);