Skip to content

Commit 7e9537e

Browse files
fix(esp_lvgl_port): Add support for LVGL 9.2 and above
1 parent 731fa5e commit 7e9537e

17 files changed

+51
-22
lines changed

components/esp_lvgl_port/CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Changelog
22

3-
## 2.5.0
3+
## 2.5.0 [Unreleased]
44

55
### Features (Functional change for button v4 users)
66
- Updated LVGL port for using IoT button component v4 (LVGL port not anymore creating button, need to be created in app and included handle to LVGL port)
7+
- Added SIMD support also for LVGL 9.2 and above
78

89
### Fixes
910
- Fixed buffer size by selected color format

components/esp_lvgl_port/CMakeLists.txt

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ endif()
2424

2525
if("${lvgl_ver}" STREQUAL "")
2626
message("Could not determine LVGL version, assuming v9.x")
27-
set(lvgl_ver "9.0.0")
27+
set(lvgl_ver "9.1.0") # With 9.1 we assume support for SIMD acceleration
2828
endif()
2929

3030
# Select folder by LVGL version
@@ -76,10 +76,9 @@ if("usb_host_hid" IN_LIST build_components)
7676
list(APPEND ADD_LIBS idf::usb_host_hid)
7777
endif()
7878

79-
# Include SIMD assembly source code for rendering, only for (9.1.0 <= LVG_version < 9.2.0) and only for esp32 and esp32s3
80-
if((lvgl_ver VERSION_GREATER_EQUAL "9.1.0") AND (lvgl_ver VERSION_LESS "9.2.0"))
79+
# Include SIMD assembly source code for rendering, only for LVGL_version >= 9.1.0 and only for esp32 and esp32s3
80+
if((lvgl_ver VERSION_GREATER_EQUAL "9.1.0"))
8181
if(CONFIG_IDF_TARGET_ESP32 OR CONFIG_IDF_TARGET_ESP32S3)
82-
message(VERBOSE "Compiling SIMD")
8382
if(CONFIG_IDF_TARGET_ESP32S3)
8483
file(GLOB_RECURSE ASM_SRCS ${PORT_PATH}/simd/*_esp32s3.S) # Select only esp32s3 related files
8584
else()

components/esp_lvgl_port/include/esp_lvgl_port_lv_blend.h

+13
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,19 @@ extern "C" {
1818
#warning "esp_lvgl_port_lv_blend.h included, but CONFIG_LV_DRAW_SW_ASM_CUSTOM not set. Assembly rendering not used"
1919
#else
2020

21+
#include "lvgl.h"
22+
23+
/**
24+
* LVGL 9.2 changed the blending API compared to 9.1
25+
* The types were moved to lv_draw_sw_blend_private.h
26+
* and the leading underscore from type names was removed
27+
*/
28+
#if __has_include("draw/sw/blend/lv_draw_sw_blend_private.h")
29+
#include "draw/sw/blend/lv_draw_sw_blend_private.h"
30+
#define _lv_draw_sw_blend_fill_dsc_t lv_draw_sw_blend_fill_dsc_t
31+
#define _lv_draw_sw_blend_image_dsc_t lv_draw_sw_blend_image_dsc_t
32+
#endif
33+
2134
/*********************
2235
* DEFINES
2336
*********************/
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
1-
set(LV_DEMO_DIR "")
2-
set(LV_DEMOS_SOURCES "")
3-
if(CONFIG_LV_USE_DEMO_BENCHMARK)
4-
list(APPEND LV_DEMO_DIR ../managed_components/lvgl__lvgl/demos)
5-
file(GLOB_RECURSE LV_DEMOS_SOURCES ${LV_DEMO_DIR}/*.c)
6-
endif()
7-
81
idf_component_register(
9-
SRCS "dispaly_lvgl_demos_main.c" ${LV_DEMOS_SOURCES}
10-
INCLUDE_DIRS "." ${LV_DEMO_DIR})
11-
12-
if(CONFIG_LV_USE_DEMO_BENCHMARK)
13-
set_source_files_properties(
14-
${LV_DEMOS_SOURCES}
15-
PROPERTIES COMPILE_OPTIONS
16-
-DLV_LVGL_H_INCLUDE_SIMPLE)
17-
endif()
2+
SRCS "display_lvgl_demos_main.c"
3+
INCLUDE_DIRS ".")

examples/display_lvgl_demos/partitions.csv

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
33
nvs, data, nvs, 0x9000, 0x6000,
44
phy_init, data, phy, 0xf000, 0x1000,
5-
factory, app, factory, 0x10000, 0x160000,
5+
factory, app, factory, 0x10000, 0x200000,

examples/display_lvgl_demos/sdkconfig.bsp.esp-box

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp-box-3

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp-box-lite

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp32_p4_function_ev_board

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y
1717
CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y
1818
CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y
1919
CONFIG_LV_FONT_MONTSERRAT_12=y
20+
CONFIG_LV_FONT_MONTSERRAT_14=y
2021
CONFIG_LV_FONT_MONTSERRAT_16=y
2122
CONFIG_LV_FONT_MONTSERRAT_24=y
2223
CONFIG_LV_USE_DEMO_WIDGETS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp32_s2_kaluga_kit

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s2"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -14,7 +15,9 @@ CONFIG_FREERTOS_HZ=1000
1415
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1516
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1617
CONFIG_LV_FONT_MONTSERRAT_12=y
18+
CONFIG_LV_FONT_MONTSERRAT_14=y
1719
CONFIG_LV_FONT_MONTSERRAT_16=y
20+
CONFIG_LV_FONT_MONTSERRAT_24=y
1821
CONFIG_LV_USE_DEMO_WIDGETS=y
1922
CONFIG_LV_USE_DEMO_BENCHMARK=y
2023
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp32_s3_eye

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp32_s3_korvo_2

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.esp32_s3_lcd_ev_board

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_PARTITION_TABLE_CUSTOM=y
78
CONFIG_COMPILER_OPTIMIZATION_PERF=y
89
CONFIG_SPIRAM=y
@@ -19,6 +20,7 @@ CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y
1920
CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y
2021
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
2122
CONFIG_LV_FONT_MONTSERRAT_12=y
23+
CONFIG_LV_FONT_MONTSERRAT_14=y
2224
CONFIG_LV_FONT_MONTSERRAT_16=y
2325
CONFIG_LV_FONT_MONTSERRAT_24=y
2426
CONFIG_LV_USE_DEMO_WIDGETS=y

examples/display_lvgl_demos/sdkconfig.bsp.m5dial

+3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
910
CONFIG_FREERTOS_HZ=1000
1011
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1112
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1213
CONFIG_LV_FONT_MONTSERRAT_12=y
14+
CONFIG_LV_FONT_MONTSERRAT_14=y
1315
CONFIG_LV_FONT_MONTSERRAT_16=y
16+
CONFIG_LV_FONT_MONTSERRAT_24=y
1417
CONFIG_LV_USE_DEMO_WIDGETS=y
1518
CONFIG_LV_USE_DEMO_BENCHMARK=y
1619
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.bsp.m5stack_core_s3

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -15,7 +16,9 @@ CONFIG_FREERTOS_HZ=1000
1516
CONFIG_LV_MEM_SIZE_KILOBYTES=48
1617
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
1718
CONFIG_LV_FONT_MONTSERRAT_12=y
19+
CONFIG_LV_FONT_MONTSERRAT_14=y
1820
CONFIG_LV_FONT_MONTSERRAT_16=y
21+
CONFIG_LV_FONT_MONTSERRAT_24=y
1922
CONFIG_LV_USE_DEMO_WIDGETS=y
2023
CONFIG_LV_USE_DEMO_BENCHMARK=y
2124
CONFIG_LV_USE_DEMO_STRESS=y

examples/display_lvgl_demos/sdkconfig.defaults

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
CONFIG_IDF_TARGET="esp32s3"
55
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
6+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
67
CONFIG_COMPILER_OPTIMIZATION_PERF=y
78
CONFIG_PARTITION_TABLE_CUSTOM=y
89
CONFIG_SPIRAM=y
@@ -21,7 +22,9 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48
2122
CONFIG_LV_USE_PERF_MONITOR=y
2223
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
2324
CONFIG_LV_FONT_MONTSERRAT_12=y
25+
CONFIG_LV_FONT_MONTSERRAT_14=y
2426
CONFIG_LV_FONT_MONTSERRAT_16=y
27+
CONFIG_LV_FONT_MONTSERRAT_24=y
2528
CONFIG_LV_USE_DEMO_WIDGETS=y
2629
CONFIG_LV_USE_DEMO_BENCHMARK=y
2730
CONFIG_LV_USE_DEMO_STRESS=y

0 commit comments

Comments
 (0)