Skip to main content
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: Note See Hardware SoCs 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

Figure: Graphics subsystem architecture

In the preceding 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. Acquires a GBM surface 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. The Adreno GPU driver can’t be modified and must be used as-is. Adreno GPU firmware The following table lists the firmware files of the Adreno GPU hardware.
Table: GPU firmware files
DescriptionQualcomm Dragonwing IQ-615 firmwareQCS5430/QCS6490 firmwareQualcomm Dragonwing IQ-8275 firmwareQualcomm Dragonwing IQ-9075 firmware
Microcode for command processora630_sqe.fwa660_sqe.fwa650_sqe.fwa660_sqe.fw
Microcode for secure content supporta612_zapa660_zapa623_zapa663_zap
Microcode for graphics management unit (GMU)a612_rgmu.bina660_gmu.bina623_gmu.bina663_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 tables list the supported GPU libraries and KGSL driver information. Note The GPU libraries table is applicable only to overlay or qcom‑multimedia‑proprietary‑image. Table: GPU libraries
LibraryDescription
libCB.so.1Driver for GPU computing
libEGL_adreno.so.1EGL 1.x driver
libeglSubDriverWayland.so.1EGL driver for Wayland subsystem
libeglSubDriverX11.so.1EGL driver for X11 subsystem
libadreno_utils.so.1Utility library for Adreno GPU driver
libgsl.so.1GSL library
libq3dtools_adreno.so.1Adreno profiler support layer
libGLESv1_CM_adreno.so.1OpenGL ES 1.x driver
libGLESv2_adreno.so.2OpenGL ES 2.x/3.x driver
libq3dtools_esx.so.1OpenGL ES profiler support layer
libOpenCL.so.1OpenCL library
libOpenCL_adreno.so.1OpenCL library for Adreno GPU
libllvm-qcom.so.1OpenCL compiler library
libvulkan_adreno.so.1Vulkan 1.x driver
libllvm-glnext.so.1OpenGL ES and Vulkan program binary loader
libllvm-qgl.so.1OpenGL ES and Vulkan core compiler library
Table: KGSL driver
Linux kernel6.6
Source code path<https://github.com/qualcomm-linux/kgsl/> Note KGSL works with upstream device tree.

Next steps