ESP32-P4 PPA (Pixel Processing Accelerator) engine instead of software rotation#139
ESP32-P4 PPA (Pixel Processing Accelerator) engine instead of software rotation#139agillis wants to merge 2 commits intoclydebarrow:lvgl-9.4from
Conversation
Add hardware-accelerated rotation using the ESP32-P4 PPA (Pixel Processing Accelerator) engine instead of software rotation. Falls back to software rotation on non-P4 platforms or if PPA registration fails. Key changes: - Use PPA SRM (Scale-Rotate-Mirror) operations for 90/180/270 degree rotation - Allocate DMA-compatible cache-line-aligned buffers for PPA compatibility - Register PPA client during setup with automatic fallback to software rotation
|
To use the changes from this PR as an external component, add the following to your ESPHome configuration YAML file: external_components:
- source: github://clydebarrow/esphome@pull/139/head
components: [lvgl]
refresh: 1h(Added by the PR bot) |
|
Is PPA handled already in LVGL 9.5? Might make sense to just target that, unless there are any showstoppers. |
|
LVGL 9.5 adds some new PPA features such as the ability to fill polygons using PPA. But my code to do screen rotation (or a version of it) would still be required. My goal it to get ESPHome switched over to LVGL 9.x as quickly as possible with as little disrution as possible so we can start using all the new features including PPA. I would be interested in moving to 9.5 but only if we can get there as fast as 9.4. If we can get LVGL 9.x in the next release this would be a huge step forward for ESPHome. |
What does this implement/fix?
Add hardware-accelerated rotation using the ESP32-P4 PPA (Pixel Processing
Accelerator) engine instead of software rotation.
Types of changes
Related issue or feature (if applicable):
Pull request in esphome-docs with documentation (if applicable):
Test Environment
Example entry for
config.yaml:# Example config.yamlChecklist:
tests/folder).If user exposed functionality or configuration variables are added/changed: