-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature(lvgl_port): Initial support for SIMD rendering in LVGL (BSP-525) #357
feature(lvgl_port): Initial support for SIMD rendering in LVGL (BSP-525) #357
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peter-marcisovsky thank you for the PR! I can see that there is a lot of work done on the assembly part that I am unable to review.
So I'm only leaving few comments about integration with LVGL. We can talk offline toghther with @espzav
components/esp_lvgl_port/src/lvgl9/simd/lv_color_blend_to_argb8888_aes3.S
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/main/test_lv_fill_functionality.c
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/src/lvgl9/simd/lv_color_blend_to_argb8888_ae32.S
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/main/test_lv_fill_functionality.c
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/main/test_lv_fill_benchmark.c
Outdated
Show resolved
Hide resolved
Reworked test apps:
|
afabff1
to
85906eb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peter-marcisovsky thank you for this PR. Good job! LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peter-marcisovsky I can't compile the test_app locally. Could you please provide som instruction how to do it?
components/esp_lvgl_port/test_apps/simd/benchmark/main/idf_component.yml
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/functionality/main/Kconfig.projbuild
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/functionality/main/idf_component.yml
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/functionality/CMakeLists.txt
Outdated
Show resolved
Hide resolved
components/esp_lvgl_port/test_apps/simd/benchmark/main/test_app_main.c
Outdated
Show resolved
Hide resolved
Reworked test apps (again): Due to a recent LVGL refactoring in the LVGL 9.2 release, where it is not possible to access a private LVGL members by default, also couple of other (breaking in my case) changes, it was decided to get rid of the lvgl component for test apps completely, not to risk another possible refactoring of the lvgl port and test apps.
|
d520d8b
to
19db7d6
Compare
Very nice work @peter-marcisovsky ! The only remaining thing is compatibility with LVGL 9.2, we can discuss next week |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peter-marcisovsky Please check if these comments correctly enable SIMD acceleration only for ESP32 and ESP32s3 and for LVGL versions 9.0 and 9.1
Then we can go ahead with merge :)
19db7d6
to
e868e95
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Assembly source files for LVGL blend API integrated into lvgl_port - Initial assembly assembly implementation of: - ARGB8888 simple fill for esp32s3 and esp32 - RGB565 simple fill for esp32 - Functionality and benchmark test app
e868e95
to
be9da14
Compare
@tore-espressif |
Latest version LGTM! Have you done any composite benchmarks (e.g. frames per second on some LVGL demo)? If yes, it would be interesting to see how much we gain from these assembly routines. (Not a blocker for pressing the merge button.) |
ESP-BSP Pull Request checklist
Change description
This MR adds an initial support for SIMD rendering in LVGL using LVGL's internal Blend API
Related
This MR Implements:
lvgl_port
componentkconfig
LV_DRAW_SW_ASM_CUSTOM
must be enabledLV_DRAW_SW_ASM_CUSTOM_INCLUDE
must be provided with a header file with function header for the assembly implemented functions, in our caseesp_lvgl_port_lv_blend.h
esp_lvgl_port_lv_blend.h
is under our control during the development phase, and will be included into the official LVGL repo once finalized, just like the existing SIMD header files from ARM.ARGB8888
color format, supported targets areesp32s3
andesp32
RGB565
color format, supported target isesp32