perf(egl): improve egl performance (#8966)

Co-authored-by: Matt Kimball <greyworld@gmail.com>
This commit is contained in:
André Costa
2025-09-30 12:50:29 +02:00
committed by GitHub
parent 94c23a76d2
commit 73874ca3bf
27 changed files with 5169 additions and 1057 deletions
@@ -96,6 +96,19 @@ Notes
- DRM requires proper modesetting. By default, LVGL will select a preferred display mode.
In order to avoid hard codding the device card path, you can ask LVGL to find a connected one for you using :cpp:func:`lv_linux_drm_find_device_path`.
It will return the first connected card it can find.
.. code-block:: c
lv_display_t * disp = lv_linux_drm_create();
/* Find the first connected card in /sys/class/drm */
char * device = lv_linux_drm_find_device_path();
lv_linux_drm_set_file(disp, device, -1);
/* Free the path pointer */
lv_free(device);
Using DRM with GBM
------------------
@@ -43,19 +43,6 @@ This API is currently private and experimental, and people should expect breakin
This allows you to use EGL with your own context management or other platforms, but the API may change
without notice in future versions.
Render Direct to Window
-----------------------
.. warning::
This feature is incomplete and has bugs.
Performance can be improved if the LVGL OpenGL driver renders its cached textures directly to the window
(and :c:macro:`LV_USE_DRAW_OPENGLES` is enabled). This can be done by creating the display with
:cpp:func:`lv_opengles_window_display_create` instead of :cpp:func:`lv_opengles_texture_create` +
:cpp:func:`lv_opengles_texture_get_texture_id` + :cpp:func:`lv_opengles_window_add_texture`.
Performance should be better with GLFW than EGL. EGL currently has issues when used this way.
Improving Performance
---------------------