[PATCH v4] drm: add overview diagram for drm stack

Abdulrasaq Lawani posted 1 patch 6 months, 2 weeks ago
Documentation/gpu/introduction.rst | 40 +++++++++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
[PATCH v4] drm: add overview diagram for drm stack
Posted by Abdulrasaq Lawani 6 months, 2 weeks ago
Add an overview diagram of Linux DRM architecture for
graphics and compute to introduction.rst

Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
---
Changes in v4:
- Ensure patch description describe diff adding overview diagram.
- Link to v3: https://lore.kernel.org/r/20250527-drm-doc-updates-v3-1-58e97a831d03@gmail.com

Changes in v3:
- revert the promotion of the overview diagram header
- Link to v2: https://lore.kernel.org/r/20250523-drm-doc-updates-v2-0-e517df152cf6@gmail.com

Changes in v2:
- Update the overview diagram to display correctly by putting in a literal block.
- Also update the overview section diagram to a higher order.
- Ensured docs are successfully rendering by building for htmldocs and pdfdocs.
- Rendered pages are okay on html and pdf.
- Link to v1: https://lore.kernel.org/r/20250522-drm-doc-updates-v1-1-d1efd54740bd@gmail.com
---
 Documentation/gpu/introduction.rst | 40 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
index 3cd0c8860b949408ed570d3f9384edd5f03df002..a8d3f953a470180b395ec52a45d0f3f4561424e0 100644
--- a/Documentation/gpu/introduction.rst
+++ b/Documentation/gpu/introduction.rst
@@ -14,7 +14,45 @@ including the TTM memory manager, output configuration and mode setting,
 and the new vblank internals, in addition to all the regular features
 found in current kernels.
 
-[Insert diagram of typical DRM stack here]
+Overview of the Linux DRM Architecture
+--------------------------------------
+::
+
+        +-----------------------------+
+        |     User-space Apps         |
+        | (Games, Browsers, ML, etc.) |
+        +-----------------------------+
+                      |
+                      v
+        +---------------------------------------+
+        |    Graphics APIs   |   Compute APIs   |
+        |  (OpenGL, Vulkan)  |  (OpenCL, CUDA)  |
+        +---------------------------------------+
+                |                   |
+                v                   v
+        +---------------------+  +-----------------------+
+        |  User-space Driver  |  |    Compute Runtime    |
+        |  (Mesa, AMD/NVIDIA) |  |  (OpenCL, CUDA, ROCm) |
+        +---------------------+  +-----------------------+
+                |                   |
+                +--------+----------+
+                         |
+                         v
+                +-----------------------+
+                |   libdrm (DRM API)    |
+                +-----------------------+
+                          |
+                          v
+        +-------------------------------------------+
+        |     Kernel DRM/KMS Driver (i915, amdgpu,  |
+        |     nouveau, etc.)                        |
+        +-------------------------------------------+
+                |                       |
+                v                       v
+        +----------------+     +-------------------+
+        | GPU Display HW |     | GPU Compute Units |
+        +----------------+     +-------------------+
+
 
 Style Guidelines
 ================

---
base-commit: 4d07f5440d7afee27dada528aaf5230e760531cb
change-id: 20250522-drm-doc-updates-3686f6d48122

Best regards,
-- 
Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
Re: [PATCH v4] drm: add overview diagram for drm stack
Posted by Bagas Sanjaya 6 months, 2 weeks ago
On Sun, Jun 01, 2025 at 06:18:47PM -0400, Abdulrasaq Lawani wrote:
> Add an overview diagram of Linux DRM architecture for
> graphics and compute to introduction.rst
> 
> Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
> ---
> <snipped>...
> diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
> index 3cd0c8860b949408ed570d3f9384edd5f03df002..a8d3f953a470180b395ec52a45d0f3f4561424e0 100644
> --- a/Documentation/gpu/introduction.rst
> +++ b/Documentation/gpu/introduction.rst
> @@ -14,7 +14,45 @@ including the TTM memory manager, output configuration and mode setting,
>  and the new vblank internals, in addition to all the regular features
>  found in current kernels.
>  
> -[Insert diagram of typical DRM stack here]
> +Overview of the Linux DRM Architecture
> +--------------------------------------
> +::
> +
> +        +-----------------------------+
> +        |     User-space Apps         |
> +        | (Games, Browsers, ML, etc.) |
> +        +-----------------------------+
> +                      |
> +                      v
> +        +---------------------------------------+
> +        |    Graphics APIs   |   Compute APIs   |
> +        |  (OpenGL, Vulkan)  |  (OpenCL, CUDA)  |
> +        +---------------------------------------+
> +                |                   |
> +                v                   v
> +        +---------------------+  +-----------------------+
> +        |  User-space Driver  |  |    Compute Runtime    |
> +        |  (Mesa, AMD/NVIDIA) |  |  (OpenCL, CUDA, ROCm) |
> +        +---------------------+  +-----------------------+
> +                |                   |
> +                +--------+----------+
> +                         |
> +                         v
> +                +-----------------------+
> +                |   libdrm (DRM API)    |
> +                +-----------------------+
> +                          |
> +                          v
> +        +-------------------------------------------+
> +        |     Kernel DRM/KMS Driver (i915, amdgpu,  |
> +        |     nouveau, etc.)                        |
> +        +-------------------------------------------+
> +                |                       |
> +                v                       v
> +        +----------------+     +-------------------+
> +        | GPU Display HW |     | GPU Compute Units |
> +        +----------------+     +-------------------+
> +
>  
>  Style Guidelines
>  ================
> 

The patch LGTM, thanks!

Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>

-- 
An old man doll... just what I always wanted! - Clara
Re: [PATCH v4] drm: add overview diagram for drm stack
Posted by Simona Vetter 6 months, 1 week ago
On Mon, Jun 02, 2025 at 08:28:30AM +0700, Bagas Sanjaya wrote:
> On Sun, Jun 01, 2025 at 06:18:47PM -0400, Abdulrasaq Lawani wrote:
> > Add an overview diagram of Linux DRM architecture for
> > graphics and compute to introduction.rst
> > 
> > Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
> > ---
> > <snipped>...
> > diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
> > index 3cd0c8860b949408ed570d3f9384edd5f03df002..a8d3f953a470180b395ec52a45d0f3f4561424e0 100644
> > --- a/Documentation/gpu/introduction.rst
> > +++ b/Documentation/gpu/introduction.rst
> > @@ -14,7 +14,45 @@ including the TTM memory manager, output configuration and mode setting,
> >  and the new vblank internals, in addition to all the regular features
> >  found in current kernels.
> >  
> > -[Insert diagram of typical DRM stack here]
> > +Overview of the Linux DRM Architecture
> > +--------------------------------------
> > +::
> > +
> > +        +-----------------------------+
> > +        |     User-space Apps         |
> > +        | (Games, Browsers, ML, etc.) |
> > +        +-----------------------------+
> > +                      |
> > +                      v
> > +        +---------------------------------------+
> > +        |    Graphics APIs   |   Compute APIs   |
> > +        |  (OpenGL, Vulkan)  |  (OpenCL, CUDA)  |
> > +        +---------------------------------------+
> > +                |                   |
> > +                v                   v
> > +        +---------------------+  +-----------------------+
> > +        |  User-space Driver  |  |    Compute Runtime    |
> > +        |  (Mesa, AMD/NVIDIA) |  |  (OpenCL, CUDA, ROCm) |
> > +        +---------------------+  +-----------------------+
> > +                |                   |
> > +                +--------+----------+
> > +                         |
> > +                         v
> > +                +-----------------------+
> > +                |   libdrm (DRM API)    |
> > +                +-----------------------+
> > +                          |
> > +                          v
> > +        +-------------------------------------------+
> > +        |     Kernel DRM/KMS Driver (i915, amdgpu,  |
> > +        |     nouveau, etc.)                        |
> > +        +-------------------------------------------+
> > +                |                       |
> > +                v                       v
> > +        +----------------+     +-------------------+
> > +        | GPU Display HW |     | GPU Compute Units |
> > +        +----------------+     +-------------------+
> > +

I'm a bit late to the party, apologies. I'm not sure how much use there is
in an extremely simplified diagram like this, least because it's really
incomplete and leaves out the entire display and compositor side.

My idea was that we'd instead link to the large pile of introductory and
overview talks further down in this file, if people want to get an
overview over what drm does.

If you want I guess you could add some links to the relevant wikipedia
pages, I think they also do a fairly decent job of explaining the big
picture.

Thanks, Sima


> >  
> >  Style Guidelines
> >  ================
> > 
> 
> The patch LGTM, thanks!
> 
> Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
> 
> -- 
> An old man doll... just what I always wanted! - Clara



-- 
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
Re: [PATCH v4] drm: add overview diagram for drm stack
Posted by Abdulrasaq Lawani 6 months, 1 week ago
Hi,

Should I go ahead make the diagram more detailed or just add the links
in 'Slides and articles' & 'Conference talks'  to the existing
diagram?

Best regards,

On Wed, Jun 4, 2025 at 10:37 AM Simona Vetter <simona.vetter@ffwll.ch> wrote:
>
> On Mon, Jun 02, 2025 at 08:28:30AM +0700, Bagas Sanjaya wrote:
> > On Sun, Jun 01, 2025 at 06:18:47PM -0400, Abdulrasaq Lawani wrote:
> > > Add an overview diagram of Linux DRM architecture for
> > > graphics and compute to introduction.rst
> > >
> > > Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
> > > ---
> > > <snipped>...
> > > diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
> > > index 3cd0c8860b949408ed570d3f9384edd5f03df002..a8d3f953a470180b395ec52a45d0f3f4561424e0 100644
> > > --- a/Documentation/gpu/introduction.rst
> > > +++ b/Documentation/gpu/introduction.rst
> > > @@ -14,7 +14,45 @@ including the TTM memory manager, output configuration and mode setting,
> > >  and the new vblank internals, in addition to all the regular features
> > >  found in current kernels.
> > >
> > > -[Insert diagram of typical DRM stack here]
> > > +Overview of the Linux DRM Architecture
> > > +--------------------------------------
> > > +::
> > > +
> > > +        +-----------------------------+
> > > +        |     User-space Apps         |
> > > +        | (Games, Browsers, ML, etc.) |
> > > +        +-----------------------------+
> > > +                      |
> > > +                      v
> > > +        +---------------------------------------+
> > > +        |    Graphics APIs   |   Compute APIs   |
> > > +        |  (OpenGL, Vulkan)  |  (OpenCL, CUDA)  |
> > > +        +---------------------------------------+
> > > +                |                   |
> > > +                v                   v
> > > +        +---------------------+  +-----------------------+
> > > +        |  User-space Driver  |  |    Compute Runtime    |
> > > +        |  (Mesa, AMD/NVIDIA) |  |  (OpenCL, CUDA, ROCm) |
> > > +        +---------------------+  +-----------------------+
> > > +                |                   |
> > > +                +--------+----------+
> > > +                         |
> > > +                         v
> > > +                +-----------------------+
> > > +                |   libdrm (DRM API)    |
> > > +                +-----------------------+
> > > +                          |
> > > +                          v
> > > +        +-------------------------------------------+
> > > +        |     Kernel DRM/KMS Driver (i915, amdgpu,  |
> > > +        |     nouveau, etc.)                        |
> > > +        +-------------------------------------------+
> > > +                |                       |
> > > +                v                       v
> > > +        +----------------+     +-------------------+
> > > +        | GPU Display HW |     | GPU Compute Units |
> > > +        +----------------+     +-------------------+
> > > +
>
> I'm a bit late to the party, apologies. I'm not sure how much use there is
> in an extremely simplified diagram like this, least because it's really
> incomplete and leaves out the entire display and compositor side.
>
> My idea was that we'd instead link to the large pile of introductory and
> overview talks further down in this file, if people want to get an
> overview over what drm does.
>
> If you want I guess you could add some links to the relevant wikipedia
> pages, I think they also do a fairly decent job of explaining the big
> picture.
>
> Thanks, Sima
>
>
> > >
> > >  Style Guidelines
> > >  ================
> > >
> >
> > The patch LGTM, thanks!
> >
> > Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
> >
> > --
> > An old man doll... just what I always wanted! - Clara
>
>
>
> --
> Simona Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
Re: [PATCH v4] drm: add overview diagram for drm stack
Posted by Bagas Sanjaya 6 months, 1 week ago
On Wed, Jun 04, 2025 at 04:37:27PM +0200, Simona Vetter wrote:
> On Mon, Jun 02, 2025 at 08:28:30AM +0700, Bagas Sanjaya wrote:
> > On Sun, Jun 01, 2025 at 06:18:47PM -0400, Abdulrasaq Lawani wrote:
> > > Add an overview diagram of Linux DRM architecture for
> > > graphics and compute to introduction.rst
> > > 
> > > Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
> > > ---
> > > <snipped>...
> > > diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
> > > index 3cd0c8860b949408ed570d3f9384edd5f03df002..a8d3f953a470180b395ec52a45d0f3f4561424e0 100644
> > > --- a/Documentation/gpu/introduction.rst
> > > +++ b/Documentation/gpu/introduction.rst
> > > @@ -14,7 +14,45 @@ including the TTM memory manager, output configuration and mode setting,
> > >  and the new vblank internals, in addition to all the regular features
> > >  found in current kernels.
> > >  
> > > -[Insert diagram of typical DRM stack here]
> > > +Overview of the Linux DRM Architecture
> > > +--------------------------------------
> > > +::
> > > +
> > > +        +-----------------------------+
> > > +        |     User-space Apps         |
> > > +        | (Games, Browsers, ML, etc.) |
> > > +        +-----------------------------+
> > > +                      |
> > > +                      v
> > > +        +---------------------------------------+
> > > +        |    Graphics APIs   |   Compute APIs   |
> > > +        |  (OpenGL, Vulkan)  |  (OpenCL, CUDA)  |
> > > +        +---------------------------------------+
> > > +                |                   |
> > > +                v                   v
> > > +        +---------------------+  +-----------------------+
> > > +        |  User-space Driver  |  |    Compute Runtime    |
> > > +        |  (Mesa, AMD/NVIDIA) |  |  (OpenCL, CUDA, ROCm) |
> > > +        +---------------------+  +-----------------------+
> > > +                |                   |
> > > +                +--------+----------+
> > > +                         |
> > > +                         v
> > > +                +-----------------------+
> > > +                |   libdrm (DRM API)    |
> > > +                +-----------------------+
> > > +                          |
> > > +                          v
> > > +        +-------------------------------------------+
> > > +        |     Kernel DRM/KMS Driver (i915, amdgpu,  |
> > > +        |     nouveau, etc.)                        |
> > > +        +-------------------------------------------+
> > > +                |                       |
> > > +                v                       v
> > > +        +----------------+     +-------------------+
> > > +        | GPU Display HW |     | GPU Compute Units |
> > > +        +----------------+     +-------------------+
> > > +
> 
> I'm a bit late to the party, apologies. I'm not sure how much use there is
> in an extremely simplified diagram like this, least because it's really
> incomplete and leaves out the entire display and compositor side.
> 
> My idea was that we'd instead link to the large pile of introductory and
> overview talks further down in this file, if people want to get an
> overview over what drm does.

So the stub that's being patched here can be removed, right?

> 
> If you want I guess you could add some links to the relevant wikipedia
> pages, I think they also do a fairly decent job of explaining the big
> picture.

What articles?

Thanks.

-- 
An old man doll... just what I always wanted! - Clara