diff --git a/env_support/cmsis-pack/LVGL.lvgl.9.0.0.pack b/env_support/cmsis-pack/LVGL.lvgl.9.0.0.pack index 7e135aaf6..9637cc858 100644 Binary files a/env_support/cmsis-pack/LVGL.lvgl.9.0.0.pack and b/env_support/cmsis-pack/LVGL.lvgl.9.0.0.pack differ diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc index 3ac9634f5..405afe616 100644 --- a/env_support/cmsis-pack/LVGL.lvgl.pdsc +++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc @@ -36,7 +36,7 @@ https://github.com/lvgl/lvgl.git - + - LVGL 9.0.0 - Implements a New Render Architecture that enables parallel processing - Accelerates SW-Render with NEON and Helium technology for Cortex architectures. diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index c2be9c8cb..1c4605be1 100644 --- a/env_support/cmsis-pack/LVGL.pidx +++ b/env_support/cmsis-pack/LVGL.pidx @@ -2,7 +2,7 @@ LVGL https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ - 2024-01-22 + 2024-01-24 diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index 08f085b30..bd45694ec 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -166,6 +166,9 @@ /* Enable VG-Lite assert. */ #define LV_VG_LITE_USE_ASSERT 0 +/* VG-Lite flush commit trigger threshold. GPU will try to batch these many draw tasks. */ +#define LV_VG_LITE_FLUSH_MAX_COUNT 8 + #endif /*======================= diff --git a/src/draw/sw/arm2d/lv_draw_sw_arm2d.h b/src/draw/sw/arm2d/lv_draw_sw_arm2d.h index 62445ee22..3f16382f7 100644 --- a/src/draw/sw/arm2d/lv_draw_sw_arm2d.h +++ b/src/draw/sw/arm2d/lv_draw_sw_arm2d.h @@ -200,11 +200,19 @@ static inline lv_result_t _lv_draw_sw_image_helium( || (LV_COLOR_FORMAT_RGB565A8 == src_cf))) { break; } + #if 0 /* a temporary patch */ if((LV_COLOR_FORMAT_XRGB8888 == des_cf) && !( (LV_COLOR_FORMAT_ARGB8888 == src_cf) || (LV_COLOR_FORMAT_XRGB8888 == src_cf))) { break; } + #else + if((LV_COLOR_FORMAT_XRGB8888 == des_cf) + || (LV_COLOR_FORMAT_RGB888 == des_cf) + || (LV_COLOR_FORMAT_ARGB8888 == des_cf)) { + break; + } + #endif /* ------------- prepare parameters for arm-2d APIs - BEGIN --------- */ @@ -399,6 +407,7 @@ static inline lv_result_t _lv_draw_sw_image_helium( LV_ASSERT(LV_COLOR_FORMAT_RGB565 == des_cf); if(opa >= LV_OPA_MAX) { + #if ARM_2D_VERSION >= 10106 arm_2d_rgb565_tile_transform_only( &source_tile, &target_tile, @@ -406,8 +415,21 @@ static inline lv_result_t _lv_draw_sw_image_helium( source_center, ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)), draw_dsc->scale_x / 256.0f, - &target_center - ); + &target_center); + #else + + arm_2dp_rgb565_tile_transform_only_prepare( + NULL, + &source_tile, + source_center, + ARM_2D_ANGLE((draw_dsc->rotation / 10.0f)), + (float)(draw_dsc->scale_x / 256.0f)); + + arm_2dp_tile_transform(NULL, + &target_tile, + NULL, + &target_center); + #endif } else { arm_2d_rgb565_tile_transform_only_with_opacity( @@ -423,6 +445,7 @@ static inline lv_result_t _lv_draw_sw_image_helium( } } + #if 0 /* a temporary patch */ else if(LV_COLOR_FORMAT_ARGB8888 == src_cf) { LV_ASSERT(LV_COLOR_FORMAT_XRGB8888 == des_cf); @@ -488,6 +511,7 @@ static inline lv_result_t _lv_draw_sw_image_helium( } } + #endif else { break; }