Skip to content

fix(esp_lvgl_port): Fix draw buffer alignment#524

Merged
tore-espressif merged 1 commit intomasterfrom
fix/lvgl_draw_buf_alignment
Feb 27, 2025
Merged

fix(esp_lvgl_port): Fix draw buffer alignment#524
tore-espressif merged 1 commit intomasterfrom
fix/lvgl_draw_buf_alignment

Conversation

@tore-espressif
Copy link
Copy Markdown
Collaborator

@tore-espressif tore-espressif commented Feb 27, 2025

ESP-BSP Pull Request checklist

Change description

  • Honor draw buffer alignment from LVGL config
  • Speed up benchmark. WIth refresh period = 33ms (default) we cannot get better than 30 FPS in the tests!

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 27, 2025

Test Results

 17 files  17 suites   17m 15s ⏱️
 85 tests 32 ✅  53 💤 0 ❌
544 runs  32 ✅ 512 💤 0 ❌

Results for commit 8917b34.

♻️ This comment has been updated with latest results.

@tore-espressif tore-espressif added this to the esp_lvgl_port 2.5.0 milestone Feb 27, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 27, 2025

Benchmark for BOARD esp32_p4_function_ev_board

DATE: 27.02.2025 14:22

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 61% (+33) 87 (+60) 5 (-1) 5 (+5) 0 (-6)
Moving wallpaper 93% (+56) 71 (+43) 10 (-2) 7 (-4) 3 (+2)
Single rectangle 17% (+13) 87 (+59) 1 (+1) 1 (+1) 0
Multiple rectangles 44% (+32) 98 (+70) 6 (+2) 4 (+2) 2
Multiple RGB images 93% (+45) 51 (+23) 15 13 2
Multiple ARGB images 97% (+2) 24 35 33 2
Rotated ARGB images 100% (+1) 3 248 (-1) 244 (-2) 4 (+1)
Multiple labels 99% (+17) 32 (+4) 27 (+1) 26 (+1) 1
Screen sized text 7% (+2) 88 (+60) 5 (+2) 5 (+2) 0
Multiple arcs 92% (+24) 39 (+11) 21 (-1) 19 2 (-1)
Containers 53% (+9) 88 (+60) 5 (-7) 5 (-7) 0
Containers with overlay 98% (+4) 17 51 (+1) 49 (+1) 2
Containers with opa 73% (+6) 74 (+46) 9 (-12) 9 (-12) 0
Containers with opa_layer 98% (+1) 10 83 (+1) 82 (+1) 1
Containers with scrolling 99% 18 51 49 2
Widgets demo 99% (+1) 16 53 (-1) 51 (-1) 2
All scenes avg. 76% (+15) 50 (+28) 38 (-1) 37 (-1) 1

Benchmark for BOARD esp32_s3_eye

DATE: 27.02.2025 14:25

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 92% 60 13 2 11
Moving wallpaper 62% 75 9 4 5
Single rectangle 16% 92 0 0 0
Multiple rectangles 83% 74 11 3 8
Multiple RGB images 20% 91 0 0 0
Multiple ARGB images 19% 90 3 3 0
Rotated ARGB images 72% 58 16 14 2
Multiple labels 17% 89 1 0 1
Screen sized text 92% 36 25 14 11
Multiple arcs 11% 89 0 0 0
Containers 13% 93 4 3 1
Containers with overlay 91% 41 21 11 10
Containers with opa 27% 90 7 6 1
Containers with opa_layer 28% 81 11 10 1
Containers with scrolling 94% 40 22 11 11
Widgets demo 96% 44 8 8 0
All scenes avg. 52% 71 8 5 3

Benchmark for BOARD esp32_s3_lcd_ev_board_2

DATE: 27.02.2025 14:32

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 88% (+17) 27 (+2) 31 (+4) 20 11 (+4)
Moving wallpaper 99% (+2) 14 64 51 (-1) 13 (+1)
Single rectangle 99% (+56) 59 (+31) 13 (+3) 2 (-2) 11 (+5)
Multiple rectangles 99% (+21) 30 (+3) 29 (+2) 20 9 (+2)
Multiple RGB images 100% (+2) 20 44 (+1) 33 (+1) 11
Multiple ARGB images 99% (-1) 15 (-1) 56 (+1) 46 10 (+1)
Rotated ARGB images 100% 3 283 (+11) 272 (+8) 11 (+3)
Multiple labels 99% (+23) 29 (+2) 29 (+6) 16 (-1) 13 (+7)
Screen sized text 99% (+1) 12 79 67 12
Multiple arcs 99% (+42) 59 (+31) 11 (-3) 4 (-2) 7 (-1)
Containers 97% (+16) 30 (+5) 27 (-3) 20 (-4) 7 (+1)
Containers with overlay 97% (-1) 11 78 (-1) 68 (-1) 10
Containers with opa 99% (+7) 24 (+3) 34 (-5) 26 (-4) 8 (-1)
Containers with opa_layer 100% (+1) 11 (+1) 81 (-1) 75 (-1) 6
Containers with scrolling 99% 14 64 55 9
Widgets demo 99% 11 66 58 8
All scenes avg. 98% (+12) 23 (+5) 61 (+1) 52 9 (+1)

Benchmark for BOARD esp32_s3_lcd_ev_board

DATE: 27.02.2025 14:30

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 98% 16 53 29 24
Moving wallpaper 99% 10 85 (-3) 81 4 (-3)
Single rectangle 99% (+37) 34 (+7) 26 (+7) 4 (-1) 22 (+8)
Multiple rectangles 99% (+5) 17 (+1) 52 (-1) 31 (+1) 21 (-2)
Multiple RGB images 99% 11 79 58 (+1) 21 (-1)
Multiple ARGB images 100% 10 (-1) 86 (+6) 80 (+1) 6 (+5)
Rotated ARGB images 100% 2 330 (-3) 315 (-10) 15 (+7)
Multiple labels 99% 16 50 31 19
Screen sized text 99% 8 110 (+1) 96 14 (+1)
Multiple arcs 100% (+1) 17 51 46 5
Containers 100% (+1) 10 83 (+2) 72 (+2) 11
Containers with overlay 99% 7 111 (-1) 100 (+1) 11 (-2)
Containers with opa 100% (+1) 8 104 87 17
Containers with opa_layer 100% (+1) 4 191 183 (+2) 8 (-2)
Containers with scrolling 100% 8 109 (-1) 99 10 (-1)
Widgets demo 99% 7 98 81 17
All scenes avg. 99% (+3) 11 101 (+1) 87 14 (+1)

Benchmark for BOARD esp_box_3

DATE: 27.02.2025 14:27

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 95% 26 33 3 30
Moving wallpaper 99% 26 35 5 30
Single rectangle 20% 89 0 0 0
Multiple rectangles 96% 51 16 4 12
Multiple RGB images 33% 93 1 0 1
Multiple ARGB images 53% 90 5 2 3
Rotated ARGB images 93% 21 44 29 15
Multiple labels 33% 99 0 0 0
Screen sized text 96% 16 56 25 31
Multiple arcs 28% 93 0 0 0
Containers 43% 76 16 5 11
Containers with overlay 96% 21 45 14 31
Containers with opa 56% 74 18 6 12
Containers with opa_layer 63% 56 28 15 13
Containers with scrolling 97% 20 44 14 30
Widgets demo 99% 25 24 10 14
All scenes avg. 68% 54 22 8 14

Benchmark for BOARD m5dial

DATE: 27.02.2025 14:36

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 92% 38 22 4 18
Moving wallpaper 92% 40 23 9 14
Single rectangle 35% 91 0 0 0
Multiple rectangles 81% 63 12 9 3
Multiple RGB images 31% 92 0 0 0
Multiple ARGB images 31% 94 2 2 0
Rotated ARGB images 77% 56 17 17 0
Multiple labels 17% 98 0 0 0
Screen sized text 91% 27 33 31 2
Multiple arcs 22% 91 0 0 0
Containers 38% 82 13 8 5
Containers with overlay 92% 35 25 19 6
Containers with opa 44% 82 14 11 3
Containers with opa_layer 51% 76 17 14 3
Containers with scrolling 94% 33 26 23 3
Widgets demo 96% 29 18 16 2
All scenes avg. 61% 64 13 10 3

Benchmark for BOARD m5stack_core_s3

DATE: 27.02.2025 14:40

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 93% 28 31 5 26
Moving wallpaper 93% 30 29 8 21
Single rectangle 18% 92 0 0 0
Multiple rectangles 85% 56 15 6 9
Multiple RGB images 33% 93 0 0 0
Multiple ARGB images 37% 92 3 3 0
Rotated ARGB images 91% 22 40 32 8
Multiple labels 16% 97 0 0 0
Screen sized text 92% 24 37 33 4
Multiple arcs 20% 95 0 0 0
Containers 38% 75 15 8 7
Containers with overlay 96% 29 30 19 11
Containers with opa 40% 73 17 10 7
Containers with opa_layer 57% 56 24 20 4
Containers with scrolling 95% 27 33 22 11
Widgets demo 96% 28 20 16 4
All scenes avg. 62% 57 18 11 7

Benchmark for BOARD m5stack_core_s3_se

DATE: 27.02.2025 14:42

LVGL version: 9.2.2

Name Avg. CPU Avg. FPS Avg. time render time flush time
Empty screen 93% 28 30 5 25
Moving wallpaper 94% 30 29 8 21
Single rectangle 20% 93 0 0 0
Multiple rectangles 83% 56 15 6 9
Multiple RGB images 29% 93 2 1 1
Multiple ARGB images 38% 92 4 4 0
Rotated ARGB images 90% 21 41 33 8
Multiple labels 21% 98 0 0 0
Screen sized text 92% 24 37 34 3
Multiple arcs 25% 95 1 1 0
Containers 36% 75 14 7 7
Containers with overlay 95% 29 30 19 11
Containers with opa 43% 73 16 10 6
Containers with opa_layer 55% 56 24 20 4
Containers with scrolling 94% 27 33 22 11
Widgets demo 96% 28 19 15 4
All scenes avg. 62% 57 17 11 6

Copy link
Copy Markdown
Collaborator

@espzav espzav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tore-espressif Thank you for this change, it was good idea to use function heap_caps_aligned_alloc. It might help in RGB888 align for DMA (I hope).
LGTM

@tore-espressif tore-espressif force-pushed the fix/lvgl_draw_buf_alignment branch from ee66d7f to 8917b34 Compare February 27, 2025 13:30
@tore-espressif tore-espressif merged commit 09f0b14 into master Feb 27, 2025
@tore-espressif tore-espressif deleted the fix/lvgl_draw_buf_alignment branch February 27, 2025 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants