From 81d3262fa57f70af754e7edddb48ad96e6751fb1 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 17 May 2019 00:14:49 +0000 Subject: [PATCH] panfrost: Cleanup leak todos Many of these are now patched; one of them we patch here. Regardless, this is one less thing to worry about in the code, I suppose. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pan_context.c | 14 +------------- src/gallium/drivers/panfrost/pan_job.c | 1 - src/gallium/drivers/panfrost/pan_resource.c | 10 ++++++++-- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 635d0cfa44a..18cd6fe2c04 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -1669,15 +1669,6 @@ panfrost_bind_vertex_elements_state( ctx->dirty |= PAN_DIRTY_VERTEX; } -static void -panfrost_delete_vertex_elements_state(struct pipe_context *pctx, void *hwcso) -{ - struct panfrost_vertex_state *so = (struct panfrost_vertex_state *) hwcso; - unsigned bytes = sizeof(struct mali_attr_meta) * so->num_elements; - DBG("Vertex elements delete leaks descriptor (%d bytes)\n", bytes); - free(hwcso); -} - static void * panfrost_create_shader_state( struct pipe_context *pctx, @@ -1705,9 +1696,6 @@ panfrost_delete_shader_state( DBG("Deleting TGSI shader leaks duplicated tokens\n"); } - unsigned leak = cso->variant_count * sizeof(struct mali_shader_meta); - DBG("Deleting shader state leaks descriptors (%d bytes), and shader bytecode\n", leak); - free(so); } @@ -2567,7 +2555,7 @@ panfrost_create_context(struct pipe_screen *screen, void *priv, unsigned flags) gallium->create_vertex_elements_state = panfrost_create_vertex_elements_state; gallium->bind_vertex_elements_state = panfrost_bind_vertex_elements_state; - gallium->delete_vertex_elements_state = panfrost_delete_vertex_elements_state; + gallium->delete_vertex_elements_state = panfrost_generic_cso_delete; gallium->create_fs_state = panfrost_create_shader_state; gallium->delete_fs_state = panfrost_delete_shader_state; diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index 3b03cd650c8..6e913ac3374 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -30,7 +30,6 @@ struct panfrost_job * panfrost_create_job(struct panfrost_context *ctx) { - /* TODO: Don't leak */ struct panfrost_job *job = rzalloc(NULL, struct panfrost_job); job->ctx = ctx; diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 6638f362855..23a05ee43cc 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -353,8 +353,14 @@ panfrost_destroy_bo(struct panfrost_screen *screen, struct panfrost_bo *pbo) } if (bo->has_checksum) { - /* TODO */ - DBG("--leaking checksum (%zd bytes)--\n", bo->checksum_slab.size); + struct panfrost_memory mem = { + .cpu = bo->checksum_slab.cpu, + .gpu = bo->checksum_slab.gpu, + .size = bo->checksum_slab.size, + .gem_handle = bo->checksum_slab.gem_handle, + }; + + screen->driver->free_slab(screen, &mem); } if (bo->imported) { -- 2.30.2