From fb71b8a4eea9f934be4ad58d14b4c81809c67d3f Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 11 Apr 2025 12:47:28 -0400 Subject: [PATCH] asahi: fix zero bo leak Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/agx_device.c | 3 +++ src/asahi/lib/agx_device.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/asahi/lib/agx_device.c b/src/asahi/lib/agx_device.c index fa5fd91b6ce..745685c0e8d 100644 --- a/src/asahi/lib/agx_device.c +++ b/src/asahi/lib/agx_device.c @@ -670,6 +670,8 @@ agx_open_device(void *memctx, struct agx_device *dev) fprintf(stderr, "Failed to bind zero page"); return false; } + + dev->zero_bo = bo; } void *bo = agx_bo_create(dev, LIBAGX_PRINTF_BUFFER_SIZE, 0, AGX_BO_WRITEBACK, @@ -691,6 +693,7 @@ void agx_close_device(struct agx_device *dev) { agx_bo_unreference(dev, dev->printf.bo); + agx_bo_unreference(dev, dev->zero_bo); u_printf_destroy(&dev->printf); agx_bo_cache_evict_all(dev); util_sparse_array_finish(&dev->bo_map); diff --git a/src/asahi/lib/agx_device.h b/src/asahi/lib/agx_device.h index f1837e51d7d..aabebec93ff 100644 --- a/src/asahi/lib/agx_device.h +++ b/src/asahi/lib/agx_device.h @@ -133,6 +133,8 @@ struct agx_device { */ uint64_t sparse_ro_offset; + struct agx_bo *zero_bo; + struct renderonly *ro; pthread_mutex_t bo_map_lock;