Adreno

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

History[edit]

Adreno (an anagram of AMD's graphics-brand Radeon) started out as Qualcomm's inhouse brand of graphics technologies [1], and was used in their mobile chipset products. Early Adreno models included the Adreno 100 and 110, which had 2D graphics acceleration and limited multimedia capabilities. At the time, 3D graphics on mobile platforms were commonly handled using software-based rendering engines, which limited their performance. 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[2]. Further collaboration with AMD resulted in the development of the Adreno 200, 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[3].

Technical details[edit]

Variants[edit]

The company offers Adreno GPUs in various flavors, as a component of their Snapdragon SoCs:

Name Microarchitecture Fab(nm) Clock

(MHz)

Memory technology Fillrate GFLOPS

(FP32)

API (version) Used in Qualcomm... References
Type ALUs

(SIMDs)

[note 1]

On-chip graphics memory Memory bandwidth MTriangles/s Pixel (GP/s) Texture (GT/s) Vulkan OpenGL ES OpenVG OpenCL OpenGL Direct3D
Adreno 1xx series
Adreno 130 fixed function pipeline 4 0.133 N/A 1.1 1.1 N/A N/A Direct3D Mobile MSM7x00, MSM7x00A, MSM7x01, MSM7x01A [4][5][6]
Adreno 2xx series - yamato
Adreno 200 (AMD Z430) Unified shader model
5-way VLIW[7]
8

(2)

256 KB 65 133 LPDDR Single-channel

166 MHz

(1.33 GB/s)

22.85 0.133 2.1 N/A 2.0 1.1 N/A 1.4 (freedreno driver) 11
(feature level 9_3) [8]
Snapdragon S1 (MSM7227, MSM7627 QSD8250, QSD8650), Freescale i.MX51, i.MX53
Adreno 200 'enhanced' 8

(2)

256 KB 45 200/245 LPDDR Single-channel

200 MHz

(1.6 GB/s)

42 0.2/0.245 3.2/3.9 Snapdragon S1 (MSM7227A, MSM7627A, MSM7225A, MSM7625A)
Adreno 203 16

(4)

256 KB 45 245/294 LPDDR2 Single-channel

300 MHz

(2.4 GB/s)

40.8-49 0.245/0.294 7.8/9.4 Snapdragon S4 Play (MSM8225, MSM8625), Snapdragon 200 (MSM8225Q, MSM8625Q)
Adreno 205 16

(4)

256 KB 45 245 LPDDR2 Dual-channel

333 MHz

(5.3 GB/s)

40.8/44.3 0.245/0.266 7.8/8.5 Snapdragon S2 (MSM7x30, MSM8x55, APQ8055)
Adreno 2xx series - leia
Adreno 220 Unified shader model
5-way VLIW[7]
32

(8)

512 KB 45 266 LPDDR2 Single-channel

333 MHz

(2.67 GB/s)

88.7 0.532 17 N/A 2.0 1.1 N/A 1.4 (freedreno driver) 11
(feature level 9_3) [8]
Snapdragon S3 (APQ8060, MSM8x60)
Adreno 225 32[9]

(8)

512 KB 28 400 LPDDR2 Dual-channel

500 MHz

(8 GB/s)

133.3 0.8 12.8/19.2/25.6 Snapdragon S4 Plus (APQ8060A, MSM8x60A, MSM8960)
Adreno 3xx series - oxili
Adreno 304 Unified shader model
Scalar instruction set[10]
24 96 KB 28 400 LPDDR2/3 Single-channel

384-533 MHz

(3.1-4.3 GB/s)

19.2 N/A 3.0[8] (freedreno driver: 3.0, 3.1 incomplete, 3.2 partial) 1.1 1.1 embedded profile 3.1 (freedreno driver, 3.2 incomplete, 3.3 complete) 11
(feature level 9_3) [8]
Snapdragon 208, Snapdragon 210, Snapdragon 212
Adreno 305 24 256 KB 28 400/450 LPDDR2 Single-channel

400 MHz

(3.2 GB/s)

66.7/75 0.8 19.2/21.6 Snapdragon S4 Plus (MSM8x27)
Adreno 305 24 128 KB 28 400/450 LPDDR2/3 Single-channel

533 MHz

(4.3 GB/s)

66.7/75 0.8 19.2/21.6 Snapdragon 200 (MSM8210, MSM8610, MSM8212, MSM8612)
Snapdragon 400[11] (MSM8x26, MSM8x28, MSM8x30, MSM8x30AB, APQ8026, APQ8030)
[12]
[13]
Adreno 306 24 128 KB[14] 28 400 LPDDR2/3 Single-channel 32-bit

533 MHz

(4.2 GB/s)

84.3 0.8 19.2 Snapdragon 410 (MSM8916), Snapdragon 412 (MSM8916v2)
Adreno 308 24 128 KB 28 500 LPDDR3 Single-channel

667 MHz

(5.34 GB/s)

105.4 1.0 24 Snapdragon 425 (MSM8917)

Snapdragon 427 (MSM8920)

Adreno 320 64 512 KB[14] 28 400 LPDDR2 Dual-channel

533 MHz

8.53 GB/s

225 1.6 3.2 51.2 Snapdragon S4 Pro (MSM8960T, APQ8064, APQ8064-1AA), Snapdragon S4 Prime (MPQ8064) [15]
Adreno 320 2nd gen 96 512 KB[14] 28 400/450 LPDDR3 Dual-channel 32-bit (64-bit)

600 MHz

(9.6 GB/s)

225/253.1 2.4/2.7 >3.2 76.8/86.4 Snapdragon 600 (APQ8064T, APQ8064AB) [15]
Adreno 330 128 1024 KB 28 450/550/578 LPDDR3 Dual-channel 32-bit (64-bit)

800 MHz

(12.8 GB/s)

253.1/309.4/325.1 3.6/4.4/4.624 115.2/140.8/147.9 Snapdragon 800 (MSM8974, APQ8074), Snapdragon 801 (MSM8274AB, MSM8974AB, MSM8974AC)
Adreno 4xx series
Adreno 405 Unified shader model 48 256 KB 28 550 LPDDR3 Single-channel

667-933 MHz

(5.34-7.46 GB/s)

52.8 N/A 3.2 (freedreno driver: 3.0, 3.1 incomplete, 3.2 partial) 1.1 1.2 full profile 3.1 (freedreno driver, 3.2 incomplete, 3.3 complete) 11
(feature level 11_1)[8]
Snapdragon 415 (MSM8929), Snapdragon 615 (MSM8939), Snapdragon 616 (MSM8939v2), Snapdragon 617 (MSM8952)
Adreno 418 128 512 KB 20 600 LPDDR3 Dual-channel 32-bit (64-bit)

933 MHz

(14.9 GB/s)

153.6 1.0 [16] Snapdragon 808 (MSM8992)
Adreno 420 128 1536 KB 28 500/600 LPDDR3 Dual-channel 64-bit (128-bit)

800 MHz

(25.6 GB/s)

281.3/337.5 (0.56 Triangle/clock)[17] 4/4.8 (8.2 Pixel/clock) 128/153.6 1.0 [note 2] Snapdragon 805 (APQ8084) [18]
Adreno 430 192 1536 KB 20 500/600/650 LPDDR4 Dual-channel 32-bit (64-bit)

1600 MHz

(25.6 GB/s)

? 4.8/6.0/6.6 324/420 1.0 [16] Snapdragon 810 (APQ8094, MSM8994)
Adreno 5xx series
Adreno 504 Unified shader model + Unified memory ? ? 12 ? LPDDR3 Single-channel

800 MHz

(6.4 GB/s)

? ? ? ? 1.0[16] 3.2[19] (freedreno driver: 3.1, 3.2 partial) ? 2.0 Full 3.1 (freedreno driver, 3.2 incomplete, 3.3 complete) 11
(feature level 11_1)
Snapdragon 429
Adreno 505 96 128 + 8 KB 28 450 LPDDR3 Single-channel

800 MHz

(6.4 GB/s)

? ? ? 48.6 Snapdragon 430 (MSM8937), Snapdragon 435, Snapdragon 439
Adreno 506 96 128 + 8 KB 14 600/650 LPDDR3 Single-channel

933 MHz

(7.46 GB/s)

? ? ? 115.2/124.8 Snapdragon 450, Snapdragon 625, Snapdragon 626, Snapdragon 632
Adreno 508 96 128 + 8 KB 14 850 LPDDR4 Dual‑channel

16‑bit (32-bit)

1333 MHz

(10.66 GB/s)

? ? ? 163.2 Snapdragon 630
Adreno 509 128 256 + 16 KB 14 720 LPDDR4 Dual‑channel

32‑bit (64-bit)

1333 MHz

(21.33 GB/s)

? ? ? 184.3 Snapdragon 636
Adreno 510 128 256 KB 28 600 LPDDR3 Dual‑channel

32‑bit (64-bit)

933 MHz

(14.9 GB/s)

? ? ? 153.6 3.2 (3.1 + AEP) (freedreno driver: 3.1, 3.2 partial) Snapdragon 650 (MSM8956), Snapdragon 652 (MSM8976),

Snapdragon 653 (MSM8976PRO)

Adreno 512 128 256 + 16 KB 14 850 LPDDR4 Quad-channel 16-bit (64-bit)

1866 MHz

(29.8 GB/s)

? ? ? 217.6 Snapdragon 660 (MSM8976 Plus)
Adreno 530 256 1024 KB 14 510/624/653 LPDDR4 Quad-channel 16-bit (64-bit)

1866 MHz

(29.8 GB/s)

? 6.7/8.1 7.7-8.1 407.4~498.5 [20] 12
(feature level 11_1)[citation needed]
Snapdragon 820 (MSM8996),

Snapdragon 821 (MSM8996PRO)

Adreno 540 256 1024 KB 10 710 LPDDR4X Dual-channel 32-bit (64-bit)

1866 MHz

(29.8 GB/s)

>450 ? 11.36 (16 Texel/clock) [21][22] 567 [20] Snapdragon 835 (MSM8998)
Adreno 6xx series
Adreno 605 Unified shader model + Unified memory 128+8 KB 14 1.0 and 1.1[23][16] 3.2 2.0 Full WIP (freedreno driver) 12
(feature level 11_1)[citation needed]
Snapdragon 460
Adreno 610 ? 11 Snapdragon 665 [24]
Adreno 612 256+16 KB 11 845 LPDDR4X Dual‑channel

16‑bit (32-bit)

1866 MHz

(14.9 GB/s)

Snapdragon 675
Adreno 615 128 with HT 512 KB 10 700 LPDDR4X Dual‑channel

16‑bit (32-bit)

1866 MHz

(14.9 GB/s)

358.4 QCS603, QCS605, Snapdragon 670 [25][26]
Adreno 616 128 with HT 512 KB 10 750 LPDDR4X Dual‑channel

16‑bit (32-bit)

1866 MHz

(14.9 GB/s)

384 Snapdragon 710
Adreno 618 128 with HT 512KB 8 825 LPDDR4X Dual‑channel

16‑bit (32-bit)

1866 MHz

(14.9 GB/s)

422 Snapdragon 730/730G [27]
Adreno 620 192? 512 7 750 LPDDR4X Dual-channel 16-bit (32-bit)

2133 MHz

(17 GB/s)

Snapdragon 735
Adreno 630 256 with HT 1024 KB 10 710 LPDDR4X Quad-channel 16-bit (64-bit)

1866 MHz

(29.9 GB/s)

>500 >12 15.4[28][29] 727 Snapdragon 845 / 850
Adreno 640 384[30] 1024 KB 7 585
675
LPDDR4X Quad-channel 16-bit (64-bit)

2133 MHz

(34.13 GB/s)

9.4 28.1 899
1037
Snapdragon 855
Snapdragon 855+
Adreno 680 ? ? 7 LPDDR4X Octa-channel 16-bit (128-bit)

2133 MHz

(68.26 GB/s)

1800 Snapdragon 8cx
Adreno 685 ? ? 7 LPDDR4X Octa-channel 16-bit (128-bit)

2133 MHz

(68.26 GB/s)

2100 Microsoft SQ1
Name Microarchitecture Fab (nm) Clock

(MHz)

Fillrate GFLOPS

(FP32)

API (version) Used in Qualcomm... References
Type ALUs

(SIMDs)

[note 1]

On-chip graphics memory MTriangles/s Pixel (GP/s) Texture (GT/s) Vulkan OpenGL ES OpenVG OpenCL OpenGL Direct3D
Notes
  1. ^ a b Adreno ALU = ALU x MP amount
  2. ^ Adreno 420 Vulkan driver was never released
  • Adreno 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 (AMD Z430) inside the QSD8x50 and MSM7x27 (133 MHz). 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. (22M triangles/second, 133M pixels/second, clock speed up to 133 MHz).
  • Adreno 200 enhanced inside the MSM7x25A and MSM7x27A (200 MHz). 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. (40M triangles/second, 200M pixels/second, clock speed up to 200 MHz).
  • Adreno 203 inside the MSM8225 and MSM8225Q (400 MHz). 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 (enhanced), 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. (42-50M triangles/second, 250-300M pixels/second, clock speed from 192-400 MHz)
  • Adreno 205 inside the QSD8x50A, MSM7x30, and MSM8x55 (245 GHz). 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. (57M triangles/second, 250M pixels/second, clock speed up to 400 MHz)
  • Adreno 220 inside the MSM8660 or MSM8260 (266MHZ) 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. (88M triangles/second, 500M pixels/second, standard clock speed up to 266 MHz, overclock up to 400 MHz).
  • Adreno 225 inside the MSM8960 (400 MHz), 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.2[15]
  • Adreno 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 (M8) and LG G2/G3 smartphones.
  • Adreno 420 inside the Qualcomm Snapdragon 805 supports Direct3D 11.2 runtime (feature level 11_1). 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 (2014). The Qualcomm Snapdragon 805 is the first phone SoC ever to feature a 128-bit memory bus.

Operating system support[edit]

There are proprietary drivers for the Linux-based mobile operating system Android available from Qualcomm themselves.[citation needed] Historically only way to have GPU support on non-android Linux was with libhybris wrapper.

Linux and Mesa supports Adreno 200/300/400/500 series of GPUs with a driver called 'freedreno. Freedreno allows fully open source graphics on devices like 96Boards Dragonboard 410c and Nexus 7 (2013)

See also[edit]

References[edit]

  1. ^ "Qualcomm History and its GPU (R)evolution". PC Perspective. Retrieved 15 September 2019.
  2. ^ "AMD Licenses 3D Graphics Core Technology to QUALCOMM, Delivering The Ultimate Visual Experience™ to Tomorrow's Phones". web.archive.org. 14 March 2009. Retrieved 15 September 2019.
  3. ^ Ferguson, Scott (January 20, 2009). "AMD Sells Handset Division to Qualcomm for $65 million". eWeek. Retrieved June 6, 2014.
  4. ^ "Qualcomm MSM7201A Application Processor with Modem Datasheet | CPUlist". PDAdb.net. 2012-02-25. Retrieved 2016-07-05.
  5. ^ Qualcomm MSM7201A. "Qualcomm MSM7201A Specs, Reviews, Ratings". System-on-a-chip.specout.com. Archived from the original on 2016-06-16. Retrieved 2016-07-05.
  6. ^ "3D Gaming Brochure" (PDF). Archived from the original (PDF) on October 25, 2007. Retrieved 2016-07-05.
  7. ^ a b "The Freedreno driver" (PDF). Rob Clark @ FOSDEM2013.
  8. ^ a b c d e "Adreno GPU SDK - GPU - Qualcomm Developer Network". Developer.qualcomm.com. Retrieved 2019-07-18.
  9. ^ "Mobile GPUs : Architectures". Bastian Zuehlke. 2012-04-05. Retrieved 2018-06-13.
  10. ^ freedreno (2015-01-06). "A3xx shader instruction set architecture · freedreno/freedreno Wiki · GitHub". Github.com. Retrieved 2016-07-05.
  11. ^ Snapdragon 400 processor specs at qualcomm.com
  12. ^ "Expands Qualcomm Snapdragon 200 Processor Tier". Qualcomm. 2013-06-20. Retrieved 2016-07-05.
  13. ^ "Qualcomm Rolls-Out High-End Quad-Core Snapdragon S4 System-on-Chips". X-bit labs. Archived from the original on 2016-08-18. Retrieved 2016-07-05.
  14. ^ a b c "Qualcomm® Snapdragon™ embedded platforms HW and SW Overview" (PDF). explace. 2016.
  15. ^ a b c AnandTech - Adreno 320 performance preview
  16. ^ a b c d "Qualcomm announces Vulkan API support for Adreno 530".
  17. ^ "High Quality with High Performance UE4 Mobile Game - CSDN博客". blog.csdn.net (in Chinese). Retrieved 2018-06-12.
  18. ^ "Technologies Announces Next Generation Qualcomm Snapdragon 805 "Ultra HD" Processor". Qualcomm. 2013-11-20. Retrieved 2016-07-05.
  19. ^ "Xiaomi Redmi Note 5A Prime (Y1) performance in GFXBench - unified graphics benchmark based on DXBenchmark (DirectX) and GLBenchmark (OpenGL ES)".
  20. ^ a b https://gflops.surge.sh/
  21. ^ Humrick, Matt. "Qualcomm Details Snapdragon 835: Kryo 280 CPU, Adreno 540 GPU, X16 LTE". Retrieved 2018-06-11.
  22. ^ "GFXBench - Unified cross-platform 3D graphics benchmark database". The cross-platform performance site. Retrieved 2018-06-11.
  23. ^ "Vulkan graphics API receives major 1.1 update". Android Authority. 2018-03-07. Retrieved 2018-06-12.
  24. ^ "Snapdragon 665 Mobile Platform". Qualcomm.
  25. ^ "QCS603 SoC | Qualcomm". Qualcomm. Retrieved 2018-04-12.
  26. ^ "QCS605 SoC | Qualcomm". Qualcomm. Retrieved 2018-04-12.
  27. ^ "Snapdragon 730 Mobile Platform". Qualcomm.
  28. ^ Smith, Andrei Frumusanu, Ryan. "The Snapdragon 845 Performance Preview: Setting the Stage for Flagship Android 2018". Retrieved 2018-06-11.
  29. ^ "GFXBench - Unified cross-platform 3D graphics benchmark database". The cross-platform performance site. Retrieved 2018-06-11.
  30. ^ "Qualcomm Snapdragon 855: An overview of its CPU, GPU, ISP, and DSP". xda-developers. 2018-12-05. Retrieved 2018-12-05.

External links[edit]