Lv_display_set_3rd_draw_buffer?

Description

I’m looking for ways to speed lvgl up; it’s still very slow.
Does a 3rd buffer now work in lvgl 9.3 ? Here compilation fails because the second argument is not parsed correctly.

What MCU/Processor/Board and compiler are you using?

esp32s3, co5300 driver, 466*466 amoled display
esp-idf

What LVGL version are you using?

9.3

What do you want to achieve?

Speed things up!

What have you tried so far?

Going back to lvgl8 actually increases performance. So does setting a higher task priority in freertos. Still would like to use lvgl9 when possible.

Code to reproduce

here is my buffer setup during lvgl initialization:

uint8_t *buf1 = heap_caps_aligned_alloc(64, LVGL_BUFF_SIZE, MALLOC_CAP_DMA);
uint8_t *buf2 = heap_caps_aligned_alloc(64, LVGL_BUFF_SIZE, MALLOC_CAP_DMA);
uint8_t *buf3 = heap_caps_aligned_alloc(64, LVGL_BUFF_SIZE, MALLOC_CAP_DMA);
    assert(buf1);
    assert(buf2);
    assert(buf3);
    
lv_display_set_buffers(disp, buf1, buf2, LVGL_BUFF_SIZE, LV_DISPLAY_RENDER_MODE_PARTIAL);
lv_display_set_3rd_draw_buffer(disp, buf3);

Hi @qwerkus ,

Here is a link to another post which contains code to initialise three buffers…

Hope that helps.

Kind Regards,

Pete

1 Like

Thanks to your example it compiles fine now; unfortunately it appears my driver (co5300) doesn’t support a third buffer (I’m stuck on a green screen with watchdog trigger by the driver), so this was probably just a waste of time.