Performance on RT1170

,

Description

Hi all, I’ve been using NXP RT1170-EVK with LVGL 8.3.2 (the latest version release with SDK SDK_2_13_0_MIMXRT1170-EVK, - 8.3.2_rev1 - Integrate LVGL 8.3.2 to SDK.) and I’m trying to compare the following benchmark with others UI libraries. The benchmark I’m using is a simple vertical scroll list with 300 items in which in every item there are an icon and a text.
I’m getting and evaluating the system performance using Segger SystemView using marker SEGGER_SYSVIEW_MarkStart/Stop and SEGGER_SYSVIEW_RecordEnterISR();/ExitISR().

LVGL library is configured in fullrefresh mode and PXP is ENABLED.
These are the results I got during scrolling:

  1. Using refresh timer with #define LV_DISP_DEF_REFR_PERIOD 20, I got 20-21fps

  2. Same as 1, but I developed a new flushcb where I used PXP as, let me say, a DMA in order to copy buffers to DC without CPU blocking. Performance is slightly better…I also increased LV_GPU_NXP_PXP_BLIT_SIZE_LIMIT, LV_GPU_NXP_PXP_* …in order to use PXP more…
    I got 25-27 fps.

  3. Finally I tried to decoupling refresh timer as described here:
    Display interface — LVGL documentation
    and the first attempt I did, was calling _lv_disp_refr_timer(NULL); in the main task loop:
    const TickType_t xDelay = 5 / portTICK_PERIOD_MS;
    for (;:wink:
    {
    lv_task_handler();
    /Call this anywhere you want to refresh the dirty areas/
    _lv_disp_refr_timer(NULL);
    vTaskDelay(xDelay); //5ms
    }
    but I thought to achived a better performance, main loop runs every 5ms, but I realized that functions like refr_invalid_areas(void) (called by _lv_disp_refr_timer) took a lot of ms…more o less 30-32ms (got with SystemView markers)

I think, correct me if I’m wrong, these performance are caused doing many rendering operations using CPU, I mean by software, instead of doing using hardware acceleration…Is that right?
I mean, for example, draw_rect is done by CPU because VGLITE is disable in draw_nxp_bg…

Is there a way to speed up this porting? Do you think I should enable both PXP and VGLITE ?

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

RT1170-EVK

What do you want to achieve?

basically increase performance, let me say till or similar to the Display controller timing. Es. for DC which run every 20ms (50HZ) I would like to have almost 50 fps…not 25fps as I got.

What have you tried so far?

Code to reproduce

Screenshot and/or video

Many thanks!
T.

Hi @tzan

I assume you are using default compiler optimizations, right? Please try to enable -O2 or -O3.

You will se big improvement.

Mike