# Graphics overview The Qualcomm^®^ Adreno^™^ GPU powers the graphics subsystem and offers the following capabilities: - Serves as a three-dimensional (3D) graphics accelerator with 64‑bit addressing. - Incorporates the graphics memory (GMEM) as a dedicated memory for the graphics subsystem and facilitates Fast Z, color, and stencil rendering. - Supports Qualcomm^®^ Universal Bandwidth Compression, enhancing the overall performance. The Adreno GPU supports the following graphics and compute APIs: - **OpenGL ES**: [3.0](https://registry.khronos.org/OpenGL/specs/es/3.0/es_spec_3.0.pdf), [3.1](https://registry.khronos.org/OpenGL/specs/es/3.1/es_spec_3.1.pdf), [3.2](https://registry.khronos.org/OpenGL/specs/es/3.2/es_spec_3.2.pdf) - **OpenCL**: [1.2 FP](https://registry.khronos.org/OpenCL/specs/opencl-1.2.pdf), [2.0 FP](https://registry.khronos.org/SPIR-V/specs/1.0/OpenCL.std.20.pdf), [3.0 FP](https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html) - **EGL**: [1.5](https://registry.khronos.org/EGL/specs/eglspec.1.5.pdf) - **Vulkan**: [1.1](https://registry.khronos.org/vulkan/#vulkan1.1) Note See [Hardware SoCs](https://docs.qualcomm.com/bundle/publicresource/topics/80-70030-115/soc.html) supported on Qualcomm^®^ Linux^®^. ## Graphics subsystem architecture The graphics architecture consists of Qualcomm and open-source components, as shown in the following figure. **Figure: Graphics subsystem architecture** In the figure, the Adreno GPU driver renders graphics using the following process and open-source components: 1. Wayland client application initiates rendering through EGL/OpenGL ES. 2. Wayland protocol sets the registry and callbacks for rendering. 3. Graphics buffer management gets the Wayland backbuffer for rendering. 4. Adreno GPU driver submits the rendering commands to Kernel Graphics Support Layer (KGSL) using swapbuffer, glflush, or glfinish with OpenGL. 5. Weston compositor sends the rendered surfaces for composition to Adreno GPU driver. 6. A GBM surface is acquired for composing the rendered frame. 7. Adreno GPU driver submits the rendered frame. 8. Weston compositor sends the final composed buffer to display through DRM. 9. DRM submits the buffer at the back-end to the display kernel driver to show on the screen. **Adreno GPU driver** The Qualcomm Adreno GPU driver is a collection of user-mode precompiled libraries and firmware. The Adreno GPU driver can’t be modified and must be used as is. Note To use all the features supported by the Adreno GPU, ensure that the files listed in the Table: [GPU firmware files](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-overview.html#table-qkn-4bc-ybc) and Table: [GPU driver libraries](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-overview.html#table-j3s-gl3-kcc) are present on the device in the `/lib/firmware/` and `/usr/lib/` directories, respectively. **Adreno GPU firmware** The following table lists the firmware files of the Adreno GPU hardware. > > > Table: GPU firmware files > > > | **Description** | QCS5430/QCS6490 firmware | Qualcomm Dragonwing ^™^ IQ-8275 firmware | Qualcomm Dragonwing ^™^ IQ-9075 firmware | > | --- | --- | --- | --- | > | Microcode for command processor | a660\_sqe.fw | a650\_sqe.fw | a660\_sqe.fw | > | Microcode for secure content support | a660\_zap | a623\_zap | a663\_zap | > | Microcode for graphics management unit (GMU) | a660\_gmu.bin | a623\_gmu.bin | a663\_gmu.bin | **Kernel Graphics Support Layer (KGSL)** KGSL serves as the kernel-mode driver for the Adreno GPU. The primary function of the KGSL driver is to submit commands generated by the Adreno user-mode driver to the Adreno GPU for processing. Additionally, the KGSL driver communicates with the GMU to ensure proper state management. The following table lists the supported GPU libraries and KGSL driver. > > > **Table: GPU libraries and KGSL driver** > > > > > > | Adreno GPU libraries | KGSL driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | > |

Library

Description

libCB.so.1

Driver for GPU computing

libEGL_adreno.so.1

EGL 1.x driver

libeglSubDriverWayland.so.1

EGL driver for Wayland subsystem

libadreno_utils.so.1

Utility library for Adreno GPU driver

libgsl.so.1

GSL library

libq3dtools_adreno.so.1

Adreno profiler support layer

libGLESv1_CM_adreno.so.1

OpenGL ES 1.x driver

libGLESv2_adreno.so.2

OpenGL ES 2.x/3.x driver

libq3dtools_esx.so.1

OpenGL ES profiler support layer

libOpenCL.so.1

OpenCL library

libOpenCL_adreno.so.1

OpenCL library for Adreno GPU

libllvm-qcom.so.1

OpenCL compiler library

libvulkan_adreno.so.1

Vulkan 1.x driver

libllvm-glnext.so.1

OpenGL ES and Vulkan program binary loader

libllvm-qgl.so.1

OpenGL ES and Vulkan core compiler library

| Library | Description | libCB.so.1 | Driver for GPU computing | libEGL\_adreno.so.1 | EGL 1.x driver | libeglSubDriverWayland.so.1 | EGL driver for Wayland subsystem | libadreno\_utils.so.1 | Utility library for Adreno GPU driver | libgsl.so.1 | GSL library | libq3dtools\_adreno.so.1 | Adreno profiler support layer | libGLESv1\_CM\_adreno.so.1 | OpenGL ES 1.x driver | libGLESv2\_adreno.so.2 | OpenGL ES 2.x/3.x driver | libq3dtools\_esx.so.1 | OpenGL ES profiler support layer | libOpenCL.so.1 | OpenCL library | libOpenCL\_adreno.so.1 | OpenCL library for Adreno GPU | libllvm-qcom.so.1 | OpenCL compiler library | libvulkan\_adreno.so.1 | Vulkan 1.x driver | libllvm-glnext.so.1 | OpenGL ES and Vulkan program binary loader | libllvm-qgl.so.1 | OpenGL ES and Vulkan core compiler library |

Linux kernel

6.6

Source code path

<root_dir>/source/graphics-kernel/

GPU DTSI files

QCS5430

  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics.dtsi

  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics-pwrlevels.dtsi

QCS6490

  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics.dtsi

  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics-pwrlevels.dtsi

Dragonwing IQ-8275

<root_dir>/source/graphics-devicetree/gpu/qcs8300-graphics.dtsi

Dragonwing IQ-9075

<root_dir>/source/graphics-devicetree/gpu/qcs9075-graphics.dtsi

| **Linux kernel** | 6.6 | 6.6 | **Source code path** | `/source/graphics-kernel/` | `/source/graphics-kernel/` |
**GPU DTSI files** |
**GPU DTSI files** |
**GPU DTSI files** | **QCS5430** | | | **QCS6490** | | | **Dragonwing IQ-8275** | `/source/graphics-devicetree/gpu/qcs8300-graphics.dtsi` | `/source/graphics-devicetree/gpu/qcs8300-graphics.dtsi` | **Dragonwing IQ-9075** | `/source/graphics-devicetree/gpu/qcs9075-graphics.dtsi` | `/source/graphics-devicetree/gpu/qcs9075-graphics.dtsi` | > | Library | Description | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libCB.so.1 | Driver for GPU computing | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libEGL\_adreno.so.1 | EGL 1.x driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libeglSubDriverWayland.so.1 | EGL driver for Wayland subsystem | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libadreno\_utils.so.1 | Utility library for Adreno GPU driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libgsl.so.1 | GSL library | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libq3dtools\_adreno.so.1 | Adreno profiler support layer | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libGLESv1\_CM\_adreno.so.1 | OpenGL ES 1.x driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libGLESv2\_adreno.so.2 | OpenGL ES 2.x/3.x driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libq3dtools\_esx.so.1 | OpenGL ES profiler support layer | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libOpenCL.so.1 | OpenCL library | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libOpenCL\_adreno.so.1 | OpenCL library for Adreno GPU | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libllvm-qcom.so.1 | OpenCL compiler library | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libvulkan\_adreno.so.1 | Vulkan 1.x driver | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libllvm-glnext.so.1 | OpenGL ES and Vulkan program binary loader | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | libllvm-qgl.so.1 | OpenGL ES and Vulkan core compiler library | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **Linux kernel** | 6.6 | 6.6 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **Source code path** | `/source/graphics-kernel/` | `/source/graphics-kernel/` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > |
**GPU DTSI files** |
**GPU DTSI files** |
**GPU DTSI files** | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **QCS5430** |

  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics.dtsi


  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics-pwrlevels.dtsi


|

  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics.dtsi


  • <root_dir>/source/graphics-devicetree/gpu/qcs5430-graphics-pwrlevels.dtsi


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **QCS6490** |

  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics.dtsi


  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics-pwrlevels.dtsi


|

  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics.dtsi


  • <root_dir>/source/graphics-devicetree/gpu/qcm6490-graphics-pwrlevels.dtsi


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **Dragonwing IQ-8275** | `/source/graphics-devicetree/gpu/qcs8300-graphics.dtsi` | `/source/graphics-devicetree/gpu/qcs8300-graphics.dtsi` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > | **Dragonwing IQ-9075** | `/source/graphics-devicetree/gpu/qcs9075-graphics.dtsi` | `/source/graphics-devicetree/gpu/qcs9075-graphics.dtsi` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## Adreno GPU specifications The following table lists the specifications of the Adreno GPU. Table: GPU information | Chipset | QCS5430 | QCS6490 | Dragonwing IQ-8275 | Dragonwing IQ-9075 | | --- | --- | --- | --- | --- | | **GPU** | Adreno GPU 642L | Adreno GPU 643 | Adreno GPU 623 | Adreno GPU 663 | | **GPU clock** | 315 MHz | 812 MHz | 877 MHz | 800 MHz | | **On-Chip memory (GMEM)** | 512 kB | 512 kB | 512 kB | 1.5 MB | To find the GPU information, run the following command using SSH on the device: cat /sys/class/kgsl/kgsl-3d0/gpu_model Copy to clipboard For general information about the Adreno GPU, see [Game Developer Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-78185-2/gpu.html). ## Next steps - [Compile and run OpenGL ES-based applications](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-getting-started.html#compile-opengles-sample-application-glmark2) - [Compile and run OpenCL-based applications](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-getting-started.html#opencl-sample-applications) - [Compile and run Vulkan-based applications](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-getting-started.html#vulkan-sample-applications) - [Compile and run X11-based applications](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-getting-started.html#x11-sample-applications) Last Published: Jun 23, 2026 [Previous Topic Graphics documentation](https://docs.qualcomm.com/bundle/publicresource/80-70030-19/topics/graphics-home-page.md) [Next Topic Run sample applications](https://docs.qualcomm.com/bundle/publicresource/80-70030-19/topics/graphics-getting-started.md) Source: [https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-overview.html](https://docs.qualcomm.com/doc/80-70030-19/topic/graphics-overview.html)