panfrost: fix potential memory leak

In the very unlikely case that the packed AFBC image will not
save (enough) memory, we abort packing. In this case we should
free the BO associated with the metadata.

Fixes: 5a928f7563 ("panfrost: Add env variable for max AFBC packing ratio")
Reviewed-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32597>
This commit is contained in:
Eric R. Smith
2024-12-11 11:34:51 -04:00
committed by Marge Bot
parent b59e73e426
commit f8bc6c8663
+3 -2
View File
@@ -1674,9 +1674,10 @@ panfrost_pack_afbc(struct panfrost_context *ctx,
unsigned old_size = panfrost_bo_size(prsrc->bo);
unsigned ratio = 100 * new_size / old_size;
if (ratio > screen->max_afbc_packing_ratio)
if (ratio > screen->max_afbc_packing_ratio) {
panfrost_bo_unreference(metadata_bo);
return;
}
perf_debug(ctx, "%i%%: %i KB -> %i KB\n", ratio, old_size / 1024,
new_size / 1024);