[Help] LVGL demos performance suboptimal on NXP i.MX 1170 EVK

, ,

Description

Demos are having underwhelming performance on an NXP i.MX 1170-EVK board. Particularly the “Widgets” and “Music” demos. When anything is moving, the CPU Usage skyrockets to almost 100% and the frame rate drops below 10.

What MCU/Processor/Board and compiler are you using?

Board: NXP MIMXRT1170-EVK (1 GHz Arm Cortex-M7 core + 400MHz Arm Cortex-M4 core)
Processor: MIMXRT1176DVMAA
IDE: MCUxpresso (v11.6.0_8187)
Compiler: GCC C
Language Standard: GNU C99
SDK: SDK_2.x_MIMXRT1170-EVK (v2.12.0)
Screen: Rocktech RK055HDMIPI4MA0 (720*1280 MIPI DSI Panel)

What LVGL version are you using?

Version 8.2.0

What do you want to achieve?

Improve the performance of LVGL demos running on my board.

What have you tried so far?

Using FreeRTOS vs. Baremetal (FreeRTOS is slightly better)
Change lv_config.h settings (Increase memory allotted, Increase/Decrease Refresh Periods)
Change FreeRTOSConfig.h (Increase total heap size, Increase/Decrease Tick Rate)
Enable NXP PXP (Pixel Pipeline Hardware Acceleration)
Enable Code Optimization -O3 (Slight Improvement)

Code to reproduce

Code is just the unmodified demo code included in the SDK.

Screenshot and/or video

Below is a video I took of the demo running on my board.

Below is a video of the same board and same screen running a different GUI, but the frames and CPU usage seem to be acceptable:

Hi cmoran, have you enabled PXP which can improve the performance of landscape mode?

Yes, I have both PXP and VG-Lite enabled.

In lv_conf.h

#define LV_USE_GPU_NXP_PXP 1
#define LV_USE_GPU_NXP_PXP_AUTO_INIT 1
#define LV_USE_GPU_VG_LITE 1