diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-05-17 00:14:49 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-05-17 00:14:49 +0000 |
commit | 81d3262fa57f70af754e7edddb48ad96e6751fb1 (patch) | |
tree | b90e3988ae7913ae9ce03e5e8ace44730fab620d | |
parent | c65271c9292441bb43b0959970b3342d4301780b (diff) |
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 <[email protected]>
-rw-r--r-- | src/gallium/drivers/panfrost/pan_context.c | 14 | ||||
-rw-r--r-- | src/gallium/drivers/panfrost/pan_job.c | 1 | ||||
-rw-r--r-- | 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) { |