From e84e1bbf36a7f9352e8f9b82976d792704ab4b8b Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Wed, 15 Jan 2020 15:55:45 +0100 Subject: [PATCH] dde_linux: optimize refresh routine in imx8_fb_drv Fix #3616 --- .../src/drivers/framebuffer/imx8/include/component.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/repos/dde_linux/src/drivers/framebuffer/imx8/include/component.h b/repos/dde_linux/src/drivers/framebuffer/imx8/include/component.h index d99688b81..e7e88289b 100644 --- a/repos/dde_linux/src/drivers/framebuffer/imx8/include/component.h +++ b/repos/dde_linux/src/drivers/framebuffer/imx8/include/component.h @@ -198,9 +198,12 @@ class Framebuffer::Session_component : public Genode::Rpc_object Genode::Pixel_rgb888 * dst = (Genode::Pixel_rgb888*)_driver.fb_addr(); for (int row = y1; row <= y2; row++) { + int line_offset = width * row; + Genode::Pixel_rgb565 const * s = src + line_offset + x1; + Genode::Pixel_rgb888 * d = dst + line_offset + x1; for (int col = x1; col <= x2; col++) { - Genode::Pixel_rgb565 px = src[width * row + col]; - dst[width * row + col] = Genode::Pixel_rgb888(px.r(), px.g(), px.b(), px.a()); + Genode::Pixel_rgb565 const px = *s++; + *d++ = Genode::Pixel_rgb888(px.r(), px.g(), px.b(), px.a()); } } }