Skip to content

docs(linux): add overview page and update opengl overview #10053

Open
AndreCostaaa wants to merge 1 commit intolvgl:masterfrom
AndreCostaaa:docs-linux
Open

docs(linux): add overview page and update opengl overview #10053
AndreCostaaa wants to merge 1 commit intolvgl:masterfrom
AndreCostaaa:docs-linux

Conversation

@AndreCostaaa
Copy link
Copy Markdown
Collaborator

Fixes #xxxx

Notes

@AndreCostaaa AndreCostaaa changed the title docs(linux): add overview page and reorganize pages docs(linux): add overview page and update opengl overview May 4, 2026
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 28 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/src/integration/embedded_linux/opengl.mdx">

<violation number="1" location="docs/src/integration/embedded_linux/opengl.mdx:53">
P3: Remove the stray non-printable character line before the 3D/glTF section heading.</violation>
</file>

<file name="docs/src/integration/embedded_linux/drivers/X11.mdx">

<violation number="1" location="docs/src/integration/embedded_linux/drivers/X11.mdx:28">
P2: Indent the new fenced code block so it remains part of the "Direct Exit" list item; currently it breaks out of the list structure.</violation>
</file>

<file name="docs/src/integration/embedded_linux/drivers/wayland.mdx">

<violation number="1" location="docs/src/integration/embedded_linux/drivers/wayland.mdx:76">
P2: Indent these fenced code blocks so they remain inside the numbered list items; currently they are parsed as top-level blocks.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.


#define LV_USE_X11 1

```c
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Indent the new fenced code block so it remains part of the "Direct Exit" list item; currently it breaks out of the list structure.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/src/integration/embedded_linux/drivers/X11.mdx, line 28:

<comment>Indent the new fenced code block so it remains part of the "Direct Exit" list item; currently it breaks out of the list structure.</comment>

<file context>
@@ -24,16 +24,19 @@ The X11 driver uses XLib to access the linux window manager.
-   
-        #define LV_USE_X11  1
+
+```c
+#define LV_USE_X11  1
+```
</file context>

.. code-block:: c

#define LV_USE_OPENGLES 1
```c
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Indent these fenced code blocks so they remain inside the numbered list items; currently they are parsed as top-level blocks.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/src/integration/embedded_linux/drivers/wayland.mdx, line 76:

<comment>Indent these fenced code blocks so they remain inside the numbered list items; currently they are parsed as top-level blocks.</comment>

<file context>
@@ -73,14 +73,15 @@ To enable the EGL backend:
-   .. code-block:: c
-   
-      #define LV_USE_OPENGLES 1
+```c   
+#define LV_USE_OPENGLES 1
+```
</file context>


[NanoVG](/integration/embedded_linux/draw_units/draw_nanovg) is the recommended choice. It makes better use of the GPU
and supports more LVGL features. OpenGL is also available but the performance is worse and it supports fewer features.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Remove the stray non-printable character line before the 3D/glTF section heading.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/src/integration/embedded_linux/opengl.mdx, line 53:

<comment>Remove the stray non-printable character line before the 3D/glTF section heading.</comment>

<file context>
@@ -50,17 +40,21 @@ and generates textures with hardware acceleration for integration into custom gr
+
+[NanoVG](/integration/embedded_linux/draw_units/draw_nanovg) is the recommended choice. It makes better use of the GPU
+and supports more LVGL features. OpenGL is also available but the performance is worse and it supports fewer features.
+
 # 3D/glTF Support
 
</file context>

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 4, 2026

Hi 👋, thank you for your PR!

We've run benchmarks in an emulated environment. Here are the results:

ARM Emulated 32b - lv_conf_perf32b

Scene Name Avg CPU (%) Avg FPS Avg Time (ms) Render Time (ms) Flush Time (ms)
All scenes avg. 27 37 7 7 0
Detailed Results Per Scene
Scene Name Avg CPU (%) Avg FPS Avg Time (ms) Render Time (ms) Flush Time (ms)
Empty screen 11 33 0 0 0
Moving wallpaper 2 33 1 1 0
Single rectangle 0 50 0 0 0
Multiple rectangles 0 33 0 0 0
Multiple RGB images 0 39 0 0 0
Multiple ARGB images 10 41 3 3 0
Rotated ARGB images 55 (-1) 44 15 15 0
Multiple labels 6 35 0 0 0
Screen sized text 81 45 17 17 0
Multiple arcs 40 33 7 7 0
Containers 4 37 0 0 0
Containers with overlay 86 21 44 44 0
Containers with opa 17 37 1 1 0
Containers with opa_layer 18 34 5 5 0
Containers with scrolling 44 45 12 12 0
Widgets demo 71 39 16 16 0
All scenes avg. 27 37 7 7 0

ARM Emulated 64b - lv_conf_perf64b

Scene Name Avg CPU (%) Avg FPS Avg Time (ms) Render Time (ms) Flush Time (ms)
All scenes avg. 25 37 6 6 0
Detailed Results Per Scene
Scene Name Avg CPU (%) Avg FPS Avg Time (ms) Render Time (ms) Flush Time (ms)
Empty screen 11 33 0 0 0
Moving wallpaper 1 33 0 0 0
Single rectangle 0 50 0 0 0
Multiple rectangles 0 35 0 0 0
Multiple RGB images 0 39 0 0 0
Multiple ARGB images 11 42 0 0 0
Rotated ARGB images 29 33 9 9 0
Multiple labels 2 35 0 0 0
Screen sized text 85 46 18 18 0
Multiple arcs 33 33 6 6 0
Containers 4 37 0 0 0
Containers with overlay 98 22 42 42 0
Containers with opa 16 36 0 0 0
Containers with opa_layer 8 37 1 1 0
Containers with scrolling 48 (+1) 48 12 12 0
Widgets demo 69 (+1) 40 15 15 0
All scenes avg. 25 37 6 6 0

Disclaimer: These benchmarks were run in an emulated environment using QEMU with instruction counting mode.
The timing values represent relative performance metrics within this specific virtualized setup and should
not be interpreted as absolute real-world performance measurements. Values are deterministic and useful for
comparing different LVGL features and configurations, but may not correlate directly with performance on
physical hardware. The measurements are intended for comparative analysis only.


🤖 This comment was automatically generated by a bot.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reorganizes and expands the Embedded Linux documentation by adding a new overview landing page, restructuring navigation into clearer sub-sections (drivers / draw units / distros), and updating the OpenGL overview and related driver pages.

Changes:

  • Added a new Embedded Linux overview page and simplified the Embedded Linux nav structure.
  • Introduced new “Draw Units” and “OS Support (distros)” doc groupings, including new draw unit pages and new Yocto documentation.
  • Updated several driver docs (titles + code-block formatting) and refreshed the OpenGL overview content.

Reviewed changes

Copilot reviewed 19 out of 28 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
docs/src/integration/embedded_linux/os/meta.json Removed obsolete OS nav metadata (old structure).
docs/src/integration/embedded_linux/os/buildroot/meta.json Removed obsolete Buildroot nav metadata (old structure).
docs/src/integration/embedded_linux/meta.json Updated Embedded Linux navigation to new top-level sections.
docs/src/integration/embedded_linux/index.mdx Added an Embedded Linux overview/entry page with curated links.
docs/src/integration/embedded_linux/opengl.mdx Refreshed OpenGL overview content and reorganized sections.
docs/src/integration/embedded_linux/drivers/fbdev.mdx Updated page title for consistency.
docs/src/integration/embedded_linux/drivers/drm.mdx Converted config snippet to fenced code block.
docs/src/integration/embedded_linux/drivers/glfw.mdx Updated config snippet and clarified configuration defines.
docs/src/integration/embedded_linux/drivers/opengl_driver.mdx Renamed page title and converted config snippet to fenced code block.
docs/src/integration/embedded_linux/drivers/wayland.mdx Converted multiple snippets to fenced code blocks.
docs/src/integration/embedded_linux/drivers/X11.mdx Renamed page title and converted snippets to fenced code blocks.
docs/src/integration/embedded_linux/draw_units/meta.json Added nav grouping for draw unit documentation.
docs/src/integration/embedded_linux/draw_units/draw_sdl.mdx Added SDL draw unit documentation page.
docs/src/integration/embedded_linux/draw_units/draw_opengl.mdx Added OpenGL ES draw unit documentation page.
docs/src/integration/embedded_linux/draw_units/draw_nanovg.mdx Added NanoVG draw unit documentation page.
docs/src/integration/embedded_linux/distros/meta.json Added nav grouping for distro/OS support documentation.
docs/src/integration/embedded_linux/distros/index.mdx Added distro section landing page.
docs/src/integration/embedded_linux/distros/buildroot/meta.json Added Buildroot section nav.
docs/src/integration/embedded_linux/distros/buildroot/index.mdx Updated Buildroot landing page frontmatter/formatting.
docs/src/integration/embedded_linux/distros/buildroot/quick_start.mdx Updated Buildroot quick start frontmatter/heading.
docs/src/integration/embedded_linux/distros/buildroot/custom_image.mdx Updated Buildroot custom image frontmatter/heading.
docs/src/integration/embedded_linux/distros/buildroot/app_deployment.mdx Updated Buildroot app deployment frontmatter/heading.
docs/src/integration/embedded_linux/distros/torizon/torizon.mdx Renamed Torizon page title for consistency.
docs/src/integration/embedded_linux/distros/yocto/meta.json Added Yocto section nav.
docs/src/integration/embedded_linux/distros/yocto/index.mdx Added Yocto section landing page.
docs/src/integration/embedded_linux/distros/yocto/core_components.mdx Added Yocto core components documentation page.
docs/src/integration/embedded_linux/distros/yocto/terms_and_variables.mdx Added Yocto terms/variables documentation page.
docs/src/integration/embedded_linux/distros/yocto/lvgl_recipe.mdx Added comprehensive Yocto LVGL recipe guide.


[NanoVG](/integration/embedded_linux/draw_units/draw_nanovg) is the recommended choice. It makes better use of the GPU
and supports more LVGL features. OpenGL is also available but the performance is worse and it supports fewer features.
Comment on lines +1 to +4
{
"title": "Draw Units",
"pages": ["draw_nanovg", "draw_opengl", "draw_sdl"]
}
Comment on lines 21 to +27

1. Required linked libraries: -lGL -lglfw
2. Enable the OpenGL driver support in lv_conf.h, by cmake compiler define or by KConfig

.. code-block:: c

#define LV_USE_OPENGLES 1
```c
#define LV_USE_GLFW 1
#define LV_USE_OPENGLES 1
.. code-block:: c

#define LV_USE_OPENGLES 1
```c
```c
#define LV_X11_DIRECT_EXIT 1 /* preferred default - ends the application automatically if last window has been closed */
// or
#define LV_X11_DIRECT_EXIT 0 /* application is responsible for ending the application (e.g. by own LV_EVENT_DELETE handler */
@@ -0,0 +1,3 @@
{
"pages": ["quick_start", "custom_image", "app_deployment"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants