Skip to content

Significant performance difference between V8.3 and V9 when using SDL #6524

Closed
@darko31

Description

LVGL version

v9.0.0

What happened?

Hello,

first of all thank you very much for this awesome library. I am sure that everybody appreciates this kind of project.

While testing lv_port_pc_eclipse on my PC and also on the target hardware that has Weston running (IMX8ULP-EVK board
with 1280x720 screen attached to it), I noticed a significantly higher CPU usage on V9 version of the demo in comparison to the v8.3.

This is not such a big issue on the PC, but running the V9 demo on the IMX8ULP yields almost 100% CPU usage on a single core and somewhere around 10 FPS when the Analytics tab in the demo is showed with all the graphs.

The IMX8ULP is no powerhouse, it's a dual core ARM A35 running at 800MHz, but still, running the v8.3 version of the demo the FPS is stable at 33 FPS and CPU usage is around 50%.

This can be seen also with the natively compiled demos on the PC. Here's a comparison
Screenshot from 2024-07-17 14-42-13

the left window is v9 version while the right one is v8.3.
I've set the resolution to 480x800, the CMake release is set to debug and LV_USE_ASSERT_MEM_INTEGRITY and
LV_USE_ASSERT_OBJ are set to 0.

Is this difference because of the slightly different contents displayed on the screen or is something else at play?
The first Profile tab of the demo looks pretty much the same between v8.3 and v9 and v9 again has significantly higher CPU usage (5% vs 30%).

I ran both apps with with perf and loaded debug symbols for the libSDL2 and here are the captures
lvgl_v8 3
lvgl_v9

v8.3 and v9 seem to use a different way of rendering things, BlitRGBtoRGBPixelAlpha vs BlitNtoNPixelAlpha.

Excuse my lack of understanding, I'm still learning about the LVGL and SDL.

If you have some suggestions on how to optimize the V9 version, please share.

Thank you!
Darko

How to reproduce?

No response

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions