mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-10 04:37:55 +08:00
feat(ppa): make the PPA burst length configurable (#9612)
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Compare file templates with file names / template-check (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Install LVGL using CMake / build-examples (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Has been cancelled
Hardware Performance Test / Hardware Performance Benchmark (push) Has been cancelled
Hardware Performance Test / HW Benchmark - Save PR Number (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
Arduino Lint / lint (push) Has been cancelled
Build Examples with C++ Compiler / build-examples (push) Has been cancelled
MicroPython CI / Build esp32 port (push) Has been cancelled
MicroPython CI / Build rp2 port (push) Has been cancelled
MicroPython CI / Build stm32 port (push) Has been cancelled
MicroPython CI / Build unix port (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_NORMAL_8BIT - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_SDL - Ubuntu (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_16BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_24BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - cl - Windows (push) Has been cancelled
C/C++ CI / Build OPTIONS_FULL_32BIT - gcc - Windows (push) Has been cancelled
C/C++ CI / Build ESP IDF ESP32S3 (push) Has been cancelled
C/C++ CI / Run tests with 32bit build (push) Has been cancelled
C/C++ CI / Run tests with 64bit build (push) Has been cancelled
BOM Check / bom-check (push) Has been cancelled
Verify that lv_conf_internal.h matches repository state / verify-conf-internal (push) Has been cancelled
Verify the widget property name / verify-property-name (push) Has been cancelled
Verify code formatting / verify-formatting (push) Has been cancelled
Compare file templates with file names / template-check (push) Has been cancelled
Build docs / build-and-deploy (push) Has been cancelled
Test API JSON generator / Test API JSON (push) Has been cancelled
Install LVGL using CMake / build-examples (push) Has been cancelled
Check Makefile / Build using Makefile (push) Has been cancelled
Check Makefile for UEFI / Build using Makefile for UEFI (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/benchmark_results_comment/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/filter_docker_logs/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Script Check (scripts/perf/tests/serialize_results/test.sh) (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 32b - lv_conf_perf32b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark 64b - lv_conf_perf64b (push) Has been cancelled
Emulated Performance Test / ARM Emulated Benchmark - Save PR Number (push) Has been cancelled
Hardware Performance Test / Hardware Performance Benchmark (push) Has been cancelled
Hardware Performance Test / HW Benchmark - Save PR Number (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_32B - Ubuntu (push) Has been cancelled
Performance Tests CI / Perf Tests OPTIONS_TEST_PERF_64B - Ubuntu (push) Has been cancelled
Port repo release update / run-release-branch-updater (push) Has been cancelled
Verify Font License / verify-font-license (push) Has been cancelled
Verify Kconfig / verify-kconfig (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
Signed-off-by: Felipe Neves <felipe@lvgl.io>
This commit is contained in:
@@ -556,6 +556,13 @@ menu "LVGL configuration"
|
||||
default n
|
||||
depends on LV_USE_PPA
|
||||
|
||||
config LV_PPA_BURST_LENGTH
|
||||
int "PPA Burst length in bytes"
|
||||
depends on LV_USE_PPA
|
||||
default 128
|
||||
help
|
||||
PPA burst length size in bytes.
|
||||
|
||||
config LV_USE_DRAW_EVE
|
||||
bool "Use EVE FT81X GPU."
|
||||
default n
|
||||
|
||||
@@ -107,7 +107,21 @@ To fix that behavior just add to the `sdkconfig.defaults` the following option:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
CONFIG_SPIRAM_SPEED_200M=y
|
||||
CONFIG_SPIRAM_SPEED_200M=y
|
||||
|
||||
Additionally it is possible to set the PPA burst length in order to increase
|
||||
the memory bandwidth of a particular channel to get speed improvement of the
|
||||
drawing operations, using the option:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
CONFIG_LV_PPA_BURST_LENGTH=128
|
||||
|
||||
There is a downside of increasing the burst length, if another piece of code from
|
||||
ESP-IDF is using a DMA2D channel which is shared to PPA, this increase may cause
|
||||
slow-down on that channel consumer. Also mind the burst length value supported
|
||||
are the following: 128, 64, 32, 16, and 8 bytes, other values set will result
|
||||
in a build error.
|
||||
|
||||
|
||||
Enabling LVGL logs on IDF project
|
||||
|
||||
+2
-1
@@ -395,7 +395,8 @@
|
||||
/** Draw using espressif PPA accelerator */
|
||||
#define LV_USE_PPA 0
|
||||
#if LV_USE_PPA
|
||||
#define LV_USE_PPA_IMG 0
|
||||
#define LV_USE_PPA_IMG 0
|
||||
#define LV_PPA_BURST_LENGTH 128
|
||||
#endif
|
||||
|
||||
/* Use EVE FT81X GPU. */
|
||||
|
||||
@@ -48,20 +48,30 @@ void lv_draw_ppa_init(void)
|
||||
/* Register SRM client */
|
||||
cfg.oper_type = PPA_OPERATION_SRM;
|
||||
cfg.max_pending_trans_num = 1;
|
||||
#if (LV_PPA_BURST_LENGTH == 128)
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_128;
|
||||
#elif (LV_PPA_BURST_LENGTH == 64)
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_64;
|
||||
#elif (LV_PPA_BURST_LENGTH == 32)
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_32;
|
||||
#elif (LV_PPA_BURST_LENGTH == 16)
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_16;
|
||||
#elif (LV_PPA_BURST_LENGTH == 8)
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_8;
|
||||
#else
|
||||
#error "Invalid burst length selection for PPA"
|
||||
#endif
|
||||
|
||||
res = ppa_register_client(&cfg, &draw_ppa_unit->srm_client);
|
||||
LV_ASSERT(res == ESP_OK);
|
||||
|
||||
/* Register Fill client */
|
||||
cfg.oper_type = PPA_OPERATION_FILL;
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_128;
|
||||
res = ppa_register_client(&cfg, &draw_ppa_unit->fill_client);
|
||||
LV_ASSERT(res == ESP_OK);
|
||||
|
||||
/* Register Blend client */
|
||||
cfg.oper_type = PPA_OPERATION_BLEND;
|
||||
cfg.data_burst_length = PPA_DATA_BURST_LENGTH_128;
|
||||
|
||||
res = ppa_register_client(&cfg, &draw_ppa_unit->blend_client);
|
||||
LV_ASSERT(res == ESP_OK);
|
||||
|
||||
@@ -1132,7 +1132,14 @@
|
||||
#ifdef CONFIG_LV_USE_PPA_IMG
|
||||
#define LV_USE_PPA_IMG CONFIG_LV_USE_PPA_IMG
|
||||
#else
|
||||
#define LV_USE_PPA_IMG 0
|
||||
#define LV_USE_PPA_IMG 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef LV_PPA_BURST_LENGTH
|
||||
#ifdef CONFIG_LV_PPA_BURST_LENGTH
|
||||
#define LV_PPA_BURST_LENGTH CONFIG_LV_PPA_BURST_LENGTH
|
||||
#else
|
||||
#define LV_PPA_BURST_LENGTH 128
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user