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;