summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <[email protected]>2019-06-19 13:16:14 +0200
committerTomeu Vizoso <[email protected]>2019-06-20 15:48:35 +0200
commitb5db7cce607c3c94b703e67e3c847ef07c35e058 (patch)
tree49dd7adeca6d08ca15e0a059f844a17b71fee092
parent6cec937e2281b364ebd47b26bd0659b6cb5d2e45 (diff)
panfrost: Release transient pools
Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index e4a04dd821f..470a259419b 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -2522,6 +2522,13 @@ panfrost_destroy(struct pipe_context *pipe)
screen->driver->free_slab(screen, &panfrost->shaders);
screen->driver->free_slab(screen, &panfrost->tiler_heap);
screen->driver->free_slab(screen, &panfrost->tiler_polygon_list);
+ screen->driver->free_slab(screen, &panfrost->tiler_dummy);
+
+ for (int i = 0; i < ARRAY_SIZE(panfrost->transient_pools); ++i) {
+ struct panfrost_memory_entry *entry;
+ entry = panfrost->transient_pools[i].entries[0];
+ pb_slab_free(&screen->slabs, (struct pb_slab_entry *)entry);
+ }
ralloc_free(pipe);
}
@@ -2680,7 +2687,6 @@ panfrost_setup_hardware(struct panfrost_context *ctx)
screen->driver->allocate_slab(screen, &ctx->tiler_heap, 32768, false, PAN_ALLOCATE_INVISIBLE | PAN_ALLOCATE_GROWABLE, 1, 128);
screen->driver->allocate_slab(screen, &ctx->tiler_polygon_list, 128*128, false, PAN_ALLOCATE_INVISIBLE | PAN_ALLOCATE_GROWABLE, 1, 128);
screen->driver->allocate_slab(screen, &ctx->tiler_dummy, 1, false, PAN_ALLOCATE_INVISIBLE, 0, 0);
-
}
/* New context creation, which also does hardware initialisation since I don't