LVGL v9.1.0 was released on March 20, 2024, bringing a wealth of new features, performance optimizations, and stability improvements to the v9 series.
This release focuses on hardware acceleration enhancements, expanded platform support, and developer experience improvements. With over 60 new features and 150+ bug fixes, v9.1 represents a significant step forward in stability and capability.
New Features#
Input Device Enhancements#
Crown Input Support - Added support for rotary crown input devices (like digital watch crowns), enabling intuitive rotational navigation for embedded UIs.
Keyboard Improvements - Added Home and End key mappings, expanded LV_KEY support in X11 driver, and fixed scroll behavior when PRESSED state is active.
Graphics and Rendering#
Bitmap Masks - New bitmap masking feature allows precise pixel-level transparency control for images and layers, enabling complex visual effects.
Helium Acceleration - Added simple ARM Helium acceleration for software rendering, bringing SIMD performance benefits to Cortex-M processors with MVE extensions.
Vector Graphics - Added API to append arcs to vector paths, stroke path support in VG-Lite, and improved path quality settings.
ARGB8565 Color Format - New hybrid color format combining 8-bit alpha with 5-6-5 RGB, optimizing memory usage for semi-transparent graphics.
Platform and Driver Support#
Espressif FreeRTOS - Added official support for Espressif's FreeRTOS flavor, improving compatibility with ESP32 ecosystem.
libinput/xkb Driver - New Linux input driver supporting modern input stacks with full keyboard layout handling.
LittleFS Integration - Implemented filesystem driver support for LittleFS, enabling flash-friendly file operations on embedded systems.
Display Utilities - Added screenshot-to-file functionality, making it easier to capture and debug UI states.
Cache and Memory Management#
Unified Cache Framework - Refactored cache system with new APIs for better control over image, glyph, and resource caching.
Independent Image Cache Heap - NuttX users can now configure a dedicated heap for image caching, improving memory isolation.
Image Header Caching - Added ability to drop image header cache separately, optimizing memory usage for large image sets.
Developer Tools#
Profiler Multithreading - Added multithreading support to the performance profiler with dedicated test cases.
Binary Image Viewer - New tool to inspect binary image data, useful for debugging custom image formats.
Systrace Integration - Enhanced trace filtering with systrace file format support.
FreeType and Font Rendering#
JPEG EXIF Support - Added parsing of EXIF orientation data in JPEG images loaded via libjpeg-turbo.
FreeType Italic Tilt - Configurable tilt angle for italic font rendering with FreeType.
FreeType Stress Tests - Comprehensive test suite for validating font rendering under load.
Performance Improvements#
RGB565 Blending Optimization - Minor but measurable speedup in 16-bit color blending operations, benefiting all software-rendered displays.
Simplified Layer Clearing - More efficient layer clear method reduces overhead in multi-layer rendering scenarios.
VG-Lite Asynchronous Rendering - GPU operations can now execute asynchronously, dramatically improving throughput on NXP i.MX RT and other VG-Lite platforms.
Bug Fixes#
This release includes over 150 bug fixes across all subsystems. Key areas of improvement:
Rendering and Display#
- Fixed non-antialiased RGB565A8 transformation artifacts
- Corrected invalidation of scaled image areas
- Fixed ARGB8888 buffer clearing in DIRECT mode
- Resolved RGB565 rendering with LV_BLEND_MODE_MULTIPLY
- Fixed incomplete layer drawing in VG-Lite
Input Handling#
- Fixed unintended click triggers on object deletion
- Corrected scroll object clearing on release
- Fixed keyboard last-key tracking
Widgets#
- Fixed imagebutton clipping on mid part
- Corrected msgbox footer getter
- Fixed music demo previous button click area
- Resolved calendar crash with no default date
- Fixed tileview position update on size change
Memory and Caching#
- Fixed potential use-after-free in VG-Lite linear images
- Corrected TLSF memory pool handling for >4GB allocations
- Fixed SDL buffer memory leak on display delete
- Resolved image decoder close issues
Platform-Specific#
- Windows: Improved graphics performance with high-resolution tick count
- DRM: Default to XRGB8888 framebuffer format
- FatFS: Fixed directory end-of-entries detection
- NuttX: Multiple driver and build fixes
- X11: Fixed assertion on display delete
Documentation Updates#
- Updated display-related documentation for v9 API changes
- Added STM32 ST7789 step-by-step guide with code examples
- Improved PC simulator setup documentation (SDL manual setup)
- Removed deprecated SquareLine Studio references
- Enhanced contributing guide with feature development workflow
- Added Chinese translation jump links
- Documented
lv_refr_nowfunction usage
Breaking Changes#
None. Version 9.1.0 maintains full API compatibility with 9.0.0.
Migration Notes#
If upgrading from v9.0, simply update your dependency. No code changes are required.
If upgrading from v8.x, see the v9.0 migration guide for breaking changes and API updates introduced in the v9.0 release.
Getting Started#
# Update via Git
git checkout v9.1.0
# Update via PlatformIO
platformio pkg update
# Update via ESP-IDF component manager
idf.py update-dependenciesbashFull release notes and changelog: GitHub Release v9.1.0
Special thanks to the 100+ contributors who submitted code, bug reports, and documentation improvements for this release.
