> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Display overview

The Qualcomm<sup>®</sup> Adreno™ Display Processing Unit (DPU) provides hardware-accelerated image processing. The DPU retrieves pixel data from memory and sends it to the display peripherals through standard interfaces.

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/h7j64QujhJHkLxyj/Technologies/Display/media/qli-display/overview1_colourchange.svg?fit=max&auto=format&n=h7j64QujhJHkLxyj&q=85&s=7c4be32c9f330d9631736936d43e63eb" alt="Figure: DPU architecture" width="604" height="203" data-path="Technologies/Display/media/qli-display/overview1_colourchange.svg" />

  <p className="text-sm text-gray-700">**Figure: DPU architecture**</p>
</div>

The DPU provides the following image processing and interface capabilities:

* **Image processing** includes the following:
  * **Composition**: blends individual layers into a single frame and sends it to the display panel
  * **Scaling**: supports upscale and downscale of the source image to match the panel resolution
  * **Color format conversion**: converts colors from one color format to another (from YUV to RGB)
  * **Color space conversion**: converts colors from one color space to another (sRGB, P3, and BT2020)
  * **Color processing**: enhances the colors for better visual quality
* **Interfaces**: Connects with various panels using the mobile industry processor interface display serial interface (MIPI DSI) and TV or monitor with the DisplayPort interface
  * **MIPI DSI**: defines the protocols between a host processor and peripheral devices that adhere to the MIPI Alliance specifications for mobile device interfaces
  * **DisplayPort**: serves as a digital display interface, primarily connecting video sources to display devices such as computer monitors, and can also transmit audio, USB, and other data forms

The [Qualcomm<sup>®</sup> Intelligent Multimedia SDK (IM SDK)](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK/index) and the `libdrm` APIs expose the hardware capabilities of the Adreno DPU engines.

<Note>
  See [Hardware SoCs](https://dragonwingdocs.qualcomm.com/Hardware-SoCs/) that are supported on Qualcomm<sup>®</sup> Linux<sup>®</sup>.
</Note>

## Display architecture

This information explains the primary components within the hardware and the software architecture of the Qualcomm Linux display subsystem.

### Display hardware architecture

The hardware architecture includes components for source and destination processing, layer mixing, compression, and display interfaces.

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/mGpYCfBsZaJSFIEo/Technologies/Display/media/qli-display/DPU_hardware_architecture1_colourchange.svg?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=6cdd7e40660c8f48ed8721de4c59f661" alt="Figure: DPU hardware architecture block diagram" width="278" height="386" data-path="Technologies/Display/media/qli-display/DPU_hardware_architecture1_colourchange.svg" />

  <p className="text-sm text-gray-700">**Figure: DPU hardware architecture block diagram**</p>
</div>

The following table lists the components of the display hardware architecture.

**Table: Display hardware architecture components**

| **Component**                  | **Description**                                                                                                                   |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| Bus interface                  | Fetches data from memory for processing                                                                                           |
| Source surface processing      | Reads RGB and YUV surfaces from games and video applications. Performs format conversion and quality improvements for the source. |
| Blending                       | Blends and mixes the source surfaces together                                                                                     |
| Destination surface processing | Converts, corrects, and adjusts the data based on panel characteristics                                                           |
| Compression                    | Reduces bandwidth and power consumption by sending compressed display buffers to the display                                      |
| Display interface              | Generates timings for the connected display peripherals                                                                           |

Detailed information on the display hardware architecture is available to licensed developers with authorized access. For more information, see [Qualcomm Linux Display Guide - Addendum](https://docs.qualcomm.com/doc/80-80023-18A/topic/architecture.html#high-level-display-hardware-architecture).

### Display software architecture

The display subsystem consists of Wayland, a display server protocol, and its compositors, such as Weston. Wayland uses a client-server model where the client application interacts with the Wayland server.

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/mGpYCfBsZaJSFIEo/Technologies/Display/media/qli-display/display_software_architecture.svg?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=dfa10d6d31daf25edea38e5cb6546fd3" alt="Figure: Display software architecture block diagram" width="588" height="599" data-path="Technologies/Display/media/qli-display/display_software_architecture.svg" />

  <p className="text-sm text-gray-700">**Figure: Display software architecture block diagram**</p>
</div>

The components of the display software architecture are as follows:

**Table: Display software architecture components**

| **Component**                          | **Description**                                                                                                                                                                                                                                                                  |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Wayland sink                           | The Wayland sink plug-in communicates with the Weston subsystem to render the display.                                                                                                                                                                                           |
| Wayland compositor (Weston)            | The Wayland compositor uses the Wayland protocol as a display server. The compositor handles the composition and rendering requirements at the system level and runs as a separate process in the system. Weston serves as the reference implementation of a Wayland compositor. |
| Direct rendering manager (DRM) backend | The DRM backend software framework manages the Qualcomm Adreno DPU hardware resources. It selects the optimal composition strategy for each connected display and allocates display processor hardware resources for the layer stack received from the client.                   |
| `libdrm`                               | The `libdrm` library provides APIs for accessing DRM I/O control (IOCTL).                                                                                                                                                                                                        |
| DRM/KMS framework                      | The DRM/KMS framework offers kernel and user-space level interface, with the help of `libdrm` libraries to access the related hardware features, configuration, and hardware acceleration.                                                                                       |
| Adreno DPU driver                      | The Adreno DPU driver manages all the pixel data paths to different panel interfaces.                                                                                                                                                                                            |
| Adreno DPU                             | The Adreno DPU is a hardware-accelerated engine that performs image processing and interfacing with minimal power consumption.                                                                                                                                                   |

#### Software APIs

Qualcomm Linux provides the following display APIs:

* **Weston API**: facilitates interactions with the DRM compositor. For the Weston APIs, see [Wayland client APIs](https://wayland.freedesktop.org/docs/html/apb.html) and [Wayland server APIs](https://wayland.freedesktop.org/docs/html/apc.html).
* **`libdrm` API**: facilitates interactions with the DRM/KMS framework. For the APIs, see [libdrm](https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html).

Qualcomm provides the GStreamer-based plugins. You can add the Waylandsink plugin to your media pipeline from [IM SDK plugins](https://docs.qualcomm.com/doc/80-80022-50/topic/qim-sdk-plugins.html).

For more information, see [GStreamer application development and pipeline creation](https://gstreamer.freedesktop.org/documentation/application-development/basics/index.html?gi-language=c).
