From ab3770cd2be5692d887a28641e3abd5b01a5bfe1 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Sun, 9 Feb 2025 06:04:59 +0100 Subject: [PATCH] imlib/draw: Fix fb_alloc aligned size. Signed-off-by: iabdalkader --- src/omv/imlib/draw.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/omv/imlib/draw.c b/src/omv/imlib/draw.c index 83c435a68..3cfc3aaba 100644 --- a/src/omv/imlib/draw.c +++ b/src/omv/imlib/draw.c @@ -3135,14 +3135,11 @@ void imlib_draw_image(image_t *dst_img, t_src_img.data = src_img->data; } - // Query available on-chip RAM. - uint32_t size; - void *data = fb_alloc_all(&size, FB_ALLOC_PREFER_SPEED | FB_ALLOC_CACHE_ALIGN); - fb_free(); - - // Allocate a buffer to hold chunks of the transposed image while not using all of the on-chip RAM. + // Allocate a buffer to hold chunks of the transposed image. + size_t size = fb_avail(); + size = (size & ~(OMV_ALLOC_ALIGNMENT - 1)) - OMV_ALLOC_ALIGNMENT; size = IM_MIN(size, image_size(&t_src_img)); - data = fb_alloc(size, FB_ALLOC_PREFER_SPEED | FB_ALLOC_CACHE_ALIGN); + void *data = fb_alloc(size, FB_ALLOC_PREFER_SPEED | FB_ALLOC_CACHE_ALIGN); // line_num stores how many lines we can do at a time with on-chip RAM. image_t temp = {.w = t_roi.w, .h = t_roi.h, .pixfmt = t_src_img.pixfmt};