summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c14
-rw-r--r--src/gallium/drivers/panfrost/pan_job.c1
-rw-r--r--src/gallium/drivers/panfrost/pan_resource.c10
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) {