关注+星标公众号,不错过精彩内容
作者 | strongerHuang
微信公众号 | strongerHuang
近日,LVGL升级到了V9.6.0版本,官方描述的是V9系列的最后一个稳定版本。
https://lvgl.io/docs/open/changelog/CHANGELOG

这个版本也有很多升级和改进,然后,在下一个版本(V10中)将移除一些功能。
主要更新
1、渲染性能
软件渲染器重写:混合与变换路径从逐像素处理改为逐字(word)处理,无需 GPU 或 SIMD 即可生效。在 Renesas RA8D2 上平均渲染时间降低 25%,NXP i.MX RT700 降低 22%,NXP FRDM-MCXN947 降低 20%。
关键场景提升:Alpha 混合图像在 RA8D2 上渲染速度提升 76%,RT700 上提升 60%;ESP32-P4 上旋转 ARGB 图像从 33 ms 降至 11 ms,帧率从 27 FPS 升至 60 FPS。
Arm SVE2 加速:为 RGB888 混合器新增 SVE2 支持(Armv9-A 核心),通过 LV_USE_DRAW_SW_ASM 设为 LV_DRAW_SW_ASM_SVE2 启用。至此加速后端涵盖 NEON、Helium、RISC-V V 和 SVE2。
Wayland DMA-BUF 后端:新增 DMA-BUF 后端,将渲染完成的帧直接拷贝至 DMA-BUF 缓冲区并通过 linux-dmabuf 附加到 surface,无需纹理上传和 GPU 参与。在 Renesas RZ/G2L(1280×720)上帧率从 32 FPS 提升至 44 FPS(+38%),flush 时间从 19 ms 降至 12 ms。
SiFli EPIC 初步集成:为 SiFli SF32 系列的 EPIC 2D 加速器新增 draw unit,覆盖填充、混合、图像、边框、标签和图层,配有 OS 适配层。但尚无文档,且性能尚未完全匹配 SiFli 的 out-of-tree 方案。
2、架构重构
公共/私有头文件分离:公共 API 移至 include/lvgl/,src/ 为私有目录。旧 include 路径仍可编译但会发出 。内部类型可通过 lvgl_private.h 或 LV_USE_PRIVATE_API 访问。
Kconfig 作为唯一配置源:lv_conf_template.h、内部默认头文件和 CONFIG_* 桥接文件均由同一棵 Kconfig 树生成,消除了 lv_conf.h、Kconfig 和 -D 定义之间的不一致问题。手写的 lv_conf.h 仍完全支持。
参数检查:LV_CHECK_ARG 统一替代分散的 assert 和静默解引用,在 168 个源文件中约 2900 处覆盖公共 API,默认启用。
依赖自动获取与系统库集成:LVGL 通过 find_package、pkg-config 自动解析依赖,缺失的从源码构建。安装后提供 lvgl.pc 和 lvglConfig.cmake,并提供 sdl2、wayland、drm 的预设配置,Ubuntu 可通过 Launchpad PPA 安装。
3、质量与测试
测试覆盖率从 78.66% 提升至 82.23%(+3.57 个百分点),分支覆盖率 62.59%,函数覆盖率 83.7%。
4、其他改进
字体:text_leading_trim 裁剪行框 leading,使 LV_SIZE_CONTENT 标签尺寸更紧凑;FreeType 可变字体权重支持任意轴实例化。
Widgets:glTF 模型可独立加载并共享给多个 viewer;新增专用状态 API(lv_obj_set_checked() 等)替代通用 flag API。
驱动:Wayland 缓冲键盘输入,DRM 增加 libdrm 回退,fbdev 支持 L8。

V10 版本规划
v9.6 中所有标记为 LV_DEPRECATED 的内容将在 v10.0 中移除。旧名称在 v9.6 中仍可编译,但会发出 ,因此 v9.6 是升级和清理代码的推荐版本。
V10 中将移除的内容
lv_list | ||
lv_win | ||
lv_menu | ||
lv_file_explorer | ||
lv_lottie |
上述五项均在 v9.6 中弃用,v10.0 中彻底移除。
V10 中继续推进的工作
SiFli EPIC draw unit:v9.6 中的初步集成将延续到 v10,届时补充文档并完成剩余性能优化。
配置迁移:LV_COLOR_DEPTH 被 LV_COLOR_FORMAT_DEFAULT 取代,LV_ASSERT_HANDLER_INCLUDE 被 LV_ASSERT_CUSTOM_INCLUDE 取代,自定义 include 模式统一为 LV_*_USE_CUSTOM_INCLUDE + LV_*_CUSTOM_INCLUDE 对。
破坏性变更:lv_array、lv_tree、SVG 结构体和事件链表结构体已移至私有 API,lv_drm 不再从公共头文件暴露 xf86drmMode.h。如需使用这些内部类型,需包含 lvgl_private.h 或设置 LV_USE_PRIVATE_API。