Adreno


Adreno is a series of graphics processing unit semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs.

History

Adreno is an integrated graphics processing unit within Qualcomm's Snapdragon applications processors, that was jointly developed by ATI Technologies in conjunction with Qualcomm's preexisting "QShader" GPU architecture, and coalesced into a single family of GPUs that rebranded as Adreno in 2008, just prior to AMD's mobile division being sold to Qualcomm in January 2009 for $65M. Early Adreno models included the Adreno 100 and 110, which had 2D graphics acceleration and limited multimedia capabilities. Prior to 2008, 3D graphics on mobile platforms were commonly handled using software-based rendering engines, which limited their performance and consumed too much power to be used for anything other than rudimentary mobile graphics applications. With growing demand for more advanced multimedia and 3D graphics capabilities, Qualcomm licensed the Imageon IP from AMD, in order to add hardware-accelerated 3D capabilities to their mobile products. Further collaboration with AMD resulted in the development of the Adreno 200, originally named the AMD Z430, based on a mobile Imageon variant of the R400 architecture used in the Xenos GPU of the Xbox 360 video game console and released in 2008, which was integrated into the first Snapdragon SoC. In January 2009, AMD sold their entire Imageon handheld device graphics division to Qualcomm.

Technical details

Before Adreno

  • Support up to 320x240
  • Defender3 and Stargate have Texture compression

Adreno 100 series

  • Adreno 130 is rebrand of ''Imageon 3D''

Adreno 200 series - yamato / leia

Adreno 300 series - oxili

Adreno 400 series

Adreno 500 series

Adreno 600 series

Adreno 700 series

Adreno 800 series

  • Introduced with the Adreno 810 in the Snapdragon 7s Gen 3 in August 2024.
  • Uses a sliced architecture, with 3 slices with 4 CUs and 4 MB cache each in the Adreno 830.
  • Moves from Tile Based Rendering to Immediate Mode Rendering.
  • UBWC v6: The architecture incorporates version 6 of Universal Bandwidth Compression.

Adreno X series

  • All models support the following APIs: Direct3D 11 & 12_1, OpenCL 3.0, OpenGL ES 3.2 and Vulkan 1.3
  • The Adreno X1-45 is internally called the Adreno 726, suggesting it's a scaled-up of the Adreno 725 from the Snapdragon 7+ Gen 2.
  • The Adreno X1-85 is internally called the Adreno 741, suggesting it's a scaled-up of the Adreno 730 from the Snapdragon 8 Gen 1.
;NotesAdreno 130 inside the MSM7x01, and MSM7x01A. It supports OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI. Adreno 200 inside the QSD8x50 and MSM7x27. It offers a programmable function pipeline and streaming textures with support for OpenGL ES 1.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, SVGT 1.2 and DirectDraw. Adreno 200 enhanced inside the MSM7x25A and MSM7x27A. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI. Adreno 203 inside the MSM8225 and MSM8225Q. It is an improvement over Adreno 205. It features a higher frequency, has better pixel fillrate, lower power consumption, better 3D performance. It is about 50-100% faster than Adreno 200, and 10–25% than Adreno 205. It could clock 2x times higher than Adreno 205. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, DirectX 9.0c, SVGT 1.2, Direct Draw and GDI. Adreno 205 inside the QSD8x50A, MSM7x30, and MSM8x55. Its improvements include Hardware-accelerated SVG and Adobe Flash and better shader-performance than the Adreno 200. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI. Adreno 220 inside the MSM8660 or MSM8260 with single channel memory. It supports OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, DirectX 9.0c, SVGT 1.2, Direct Draw and GDI. Adreno 225 inside the MSM8960, with unified shader architecture and dual channel memory. It supports Direct3D 9.0c in addition to OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, SVGT 1.2, Direct Draw and GDI.Adreno 320 inside the Qualcomm S4 Pro & Prime Series, with unified shader architecture and dual channel memory. It supports Direct3D feature level 9_3 in addition to OpenGL ES 3.0, OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.4, Direct3D Mobile, SVGT 1.2Adreno 330 inside the Nexus 5, Amazon Kindle HDX series tablets, Amazon Fire phone, Nokia Lumia 2520 tablet, Nokia Lumia 1520, Nokia Lumia Icon, Nokia Lumia 930, Samsung Galaxy S5, Samsung Galaxy Note 3, Sony Xperia Z1, Sony Xperia Z1 Compact, Sony Xperia Z2, Sony Xperia Z3, Sony Xperia Z3 Compact, Sony Xperia Z Ultra, Xiaomi Mi3, Xiaomi Mi4, OnePlus One, HTC One and LG G2/G3 smartphones.Adreno 420 inside the Qualcomm Snapdragon 805 supports Direct3D 11.2 runtime. Inside the Google Nexus 6, Samsung Galaxy S5 LTE-A, Samsung Galaxy Note 4, Samsung Galaxy Note Edge, LG G3 Cat. 6, Amazon Fire HDX 8.9. The Qualcomm Snapdragon 805 is the first phone SoC ever to feature a 128-bit memory bus.
  • Adreno 540 inside the Qualcomm Snapdragon 835 is the first phone SoC to feature variable refresh rate and foveated rendering/Variate Rate Shading, Qualcomm calls their implementations Q-Sync and Adreno Foveation.
  • Adreno 630 inside the Qualcomm Snapdragon 845 is the first phone SoC to feature Inside-Out Room-scale 6DoF with SLAM.
  • Adreno 640 inside the Qualcomm Snapdragon 855 is the first phone SoC to feature updateable GPU drivers from the Google Play Store.

Operating system support

There are proprietary drivers for the Linux-based mobile operating system Android available from Qualcomm themselves.
Historically the only way to have GPU support on non-Android Linux was with the libhybris wrapper.
Linux and Mesa supports the Adreno 200/300/400/500 series of GPUs with a driver called freedreno. Freedreno allows fully open-source graphics on devices like the 96Boards Dragonboard 410c and Nexus 7 (2013).
Qualcomm also provides Adreno drivers for ARM64 versions of Microsoft Windows.
Since Linux kernel 6.11, the mainline Linux kernel has added Adreno drivers for Qualcomm Snapdragon X system-on-a-chips.