Significant performance difference between V8.3 and V9 when using SDL #6524
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
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
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