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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user