mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-30 23:51:54 +08:00
feat(draw): add draw thread stack size config option (#5910)
Signed-off-by: lijianjun <lijianjun@xiaomi.com> Signed-off-by: Neo Xu <neo.xu1990@gmail.com> Co-authored-by: lijianjun <lijianjun@xiaomi.com> Co-authored-by: Neo Xu <neo.xu1990@gmail.com>
This commit is contained in:
@@ -197,6 +197,11 @@ menu "LVGL configuration"
|
|||||||
> 1 requires an operating system enabled in `LV_USE_OS`
|
> 1 requires an operating system enabled in `LV_USE_OS`
|
||||||
> 1 means multiply threads will render the screen in parallel
|
> 1 means multiply threads will render the screen in parallel
|
||||||
|
|
||||||
|
config LV_DRAW_THREAD_STACKSIZE
|
||||||
|
int "stack size of draw thread in byte"
|
||||||
|
default 32768
|
||||||
|
depends on LV_USE_OS > 0
|
||||||
|
|
||||||
config LV_USE_DRAW_ARM2D_SYNC
|
config LV_USE_DRAW_ARM2D_SYNC
|
||||||
bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors"
|
bool "Enable Arm's 2D image processing library (Arm-2D) for all Cortex-M processors"
|
||||||
default n
|
default n
|
||||||
|
|||||||
@@ -150,6 +150,9 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set stack size of drawing thread. Unit is byte. If Thorvg is enabled, 128kB is required tested on simulator.*/
|
||||||
|
#define LV_DRAW_THREAD_STACKSIZE 32768
|
||||||
|
|
||||||
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
|
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
|
||||||
#define LV_USE_DRAW_VGLITE 0
|
#define LV_USE_DRAW_VGLITE 0
|
||||||
|
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ void lv_draw_sw_init(void)
|
|||||||
draw_sw_unit->base_unit.delete_cb = LV_USE_OS ? lv_draw_sw_delete : NULL;
|
draw_sw_unit->base_unit.delete_cb = LV_USE_OS ? lv_draw_sw_delete : NULL;
|
||||||
|
|
||||||
#if LV_USE_OS
|
#if LV_USE_OS
|
||||||
lv_thread_init(&draw_sw_unit->thread, LV_THREAD_PRIO_HIGH, render_thread_cb, 8 * 1024, draw_sw_unit);
|
lv_thread_init(&draw_sw_unit->thread, LV_THREAD_PRIO_HIGH, render_thread_cb, LV_DRAW_THREAD_STACKSIZE, draw_sw_unit);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -408,6 +408,15 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set stack size of drawing thread. Unit is byte. If Thorvg is enabled, 128kB is required tested on simulator.*/
|
||||||
|
#ifndef LV_DRAW_THREAD_STACKSIZE
|
||||||
|
#ifdef CONFIG_LV_DRAW_THREAD_STACKSIZE
|
||||||
|
#define LV_DRAW_THREAD_STACKSIZE CONFIG_LV_DRAW_THREAD_STACKSIZE
|
||||||
|
#else
|
||||||
|
#define LV_DRAW_THREAD_STACKSIZE 32768
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
|
/* Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
|
||||||
#ifndef LV_USE_DRAW_VGLITE
|
#ifndef LV_USE_DRAW_VGLITE
|
||||||
#ifdef CONFIG_LV_USE_DRAW_VGLITE
|
#ifdef CONFIG_LV_USE_DRAW_VGLITE
|
||||||
|
|||||||
@@ -42,10 +42,12 @@ lv_result_t lv_thread_init(lv_thread_t * thread, lv_thread_prio_t prio, void (*c
|
|||||||
void * user_data)
|
void * user_data)
|
||||||
{
|
{
|
||||||
LV_UNUSED(prio);
|
LV_UNUSED(prio);
|
||||||
LV_UNUSED(stack_size);
|
pthread_attr_t attr;
|
||||||
|
pthread_attr_init(&attr);
|
||||||
|
pthread_attr_setstacksize(&attr, stack_size);
|
||||||
thread->callback = callback;
|
thread->callback = callback;
|
||||||
thread->user_data = user_data;
|
thread->user_data = user_data;
|
||||||
pthread_create(&thread->thread, NULL, generic_callback, thread);
|
pthread_create(&thread->thread, &attr, generic_callback, thread);
|
||||||
return LV_RESULT_OK;
|
return LV_RESULT_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -340,6 +340,7 @@ foreach( test_case_fname ${TEST_CASE_FILES} )
|
|||||||
${LIBINPUT_LIBRARIES}
|
${LIBINPUT_LIBRARIES}
|
||||||
${JPEG_LIBRARIES}
|
${JPEG_LIBRARIES}
|
||||||
m
|
m
|
||||||
|
pthread
|
||||||
${TEST_LIBS})
|
${TEST_LIBS})
|
||||||
target_include_directories(${test_name} PUBLIC ${TEST_INCLUDE_DIRS})
|
target_include_directories(${test_name} PUBLIC ${TEST_INCLUDE_DIRS})
|
||||||
target_compile_options(${test_name} PUBLIC ${LVGL_TESTFILE_COMPILE_OPTIONS})
|
target_compile_options(${test_name} PUBLIC ${LVGL_TESTFILE_COMPILE_OPTIONS})
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#define LV_MEM_SIZE (32 * 1024 * 1024)
|
#define LV_MEM_SIZE (32 * 1024 * 1024)
|
||||||
#define LV_DRAW_SW_SHADOW_CACHE_SIZE 8
|
#define LV_DRAW_SW_SHADOW_CACHE_SIZE 8
|
||||||
|
#define LV_DRAW_THREAD_STACKSIZE (128 * 1024) /*Increase stack size to 128kB in order to run Thorvg*/
|
||||||
#define LV_USE_LOG 1
|
#define LV_USE_LOG 1
|
||||||
#define LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
|
#define LV_LOG_LEVEL LV_LOG_LEVEL_TRACE
|
||||||
#define LV_LOG_PRINTF 1
|
#define LV_LOG_PRINTF 1
|
||||||
|
|||||||
Reference in New Issue
Block a user