From b85ff566960312252f0525d51d1515d8914151ca Mon Sep 17 00:00:00 2001 From: Icecream95 Date: Sat, 14 Aug 2021 23:01:42 +1200 Subject: [PATCH] panfrost: Call primconvert and u_transfer_helper destroy functions Fixes a couple of small memory leaks. Part-of: --- src/gallium/drivers/panfrost/pan_context.c | 2 ++ src/gallium/drivers/panfrost/pan_resource.c | 5 +++++ src/gallium/drivers/panfrost/pan_resource.h | 2 ++ src/gallium/drivers/panfrost/pan_screen.c | 1 + 4 files changed, 10 insertions(+) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index 064c8fd6c9a..5206d171cb4 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -802,6 +802,8 @@ panfrost_destroy(struct pipe_context *pipe) panfrost_pool_cleanup(&panfrost->descs); panfrost_pool_cleanup(&panfrost->shaders); + util_primconvert_destroy(panfrost->primconvert); + ralloc_free(pipe); } diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 6d8af181773..6e46cf0f61d 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -1333,6 +1333,11 @@ panfrost_resource_screen_init(struct pipe_screen *pscreen) true, false, fake_rgtc, true); } +void +panfrost_resource_screen_destroy(struct pipe_screen *pscreen) +{ + u_transfer_helper_destroy(pscreen->transfer_helper); +} void panfrost_resource_context_init(struct pipe_context *pctx) diff --git a/src/gallium/drivers/panfrost/pan_resource.h b/src/gallium/drivers/panfrost/pan_resource.h index 6150e161956..7ee2ef0e245 100644 --- a/src/gallium/drivers/panfrost/pan_resource.h +++ b/src/gallium/drivers/panfrost/pan_resource.h @@ -113,6 +113,8 @@ panfrost_get_afbc_pointers(struct panfrost_resource *rsrc, void panfrost_resource_screen_init(struct pipe_screen *screen); +void panfrost_resource_screen_destroy(struct pipe_screen *screen); + void panfrost_resource_context_init(struct pipe_context *pctx); /* Blitting */ diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c index 850d83af8be..3a55c272f77 100644 --- a/src/gallium/drivers/panfrost/pan_screen.c +++ b/src/gallium/drivers/panfrost/pan_screen.c @@ -694,6 +694,7 @@ panfrost_destroy_screen(struct pipe_screen *pscreen) struct panfrost_device *dev = pan_device(pscreen); struct panfrost_screen *screen = pan_screen(pscreen); + panfrost_resource_screen_destroy(pscreen); pan_indirect_dispatch_cleanup(dev); panfrost_cleanup_indirect_draw_shaders(dev); panfrost_pool_cleanup(&screen->indirect_draw.bin_pool);