# Vivante Corporation

Vivante Corporation was a fabless semiconductor company headquartered in Sunnyvale, California, with an R&D center in Shanghai, China. The company was founded in 2004 as GiQuila and focused on the portable gaming market. The company's first product was a DirectX-compatible graphics processing unit (GPU) capable of playing PC games. In 2007, GiQuila changed its name to Vivante and shifted the direction of the company to the design and licensing of embedded graphics processing unit designs. The company licensed its Mobile Visual Reality to semiconductor solution providers, serving embedded computing markets for mobile gaming, high-definition home entertainment, image processing, and automotive display and entertainment.
Vivante used to be named as a contributor to the HSA (Heterogeneous System Architecture) Foundation.
In 2015, VeriSilicon Holdings Co., Ltd. acquired Vivante Corporation in an all-stock transaction.

## Products

After its business pivot, Vivante developed a range of GPU cores that are compliant with the OpenGL ES 1.1 and 2.0 standards as well as the OpenVG standard. Created by VeriSilicon support for the Vulkan API 1.0 and for OpenVX 1.0 is provided for at least 6 major desktop and embedded operating systems.
2D graphics products & Vector GPUs, summarized by the vendor under the term "Composition Processing Cores" (CPC), sometimes mentioned with the feature of single pass composition blending capability of 8 or higher, are the GC300, GC320, GC350 and GP355 (OpenVG core)with the additional listing of GC200 and GC420. NXP further mentions GC255 in a presentation for their i.MX models. The NXP i.MX8 series will come with 2 units of the GC7000Lite or GC7000 vector processor. For 3D graphics products please see the table below.
Legend for the notes in below listing:
* Pipelined FP/INT double (64-bit), single/high (32-bit) and half precision/medium (16-bit) precision IEEE formats for GPU Compute and HDR graphics, Source:
| Series | Model | Date | Shader Cores SP/Half (mode) | Silicon area (mm$^2$) | Core Clock Max in MHz | Shader Clock Max in MHz | Fillrate | Fillrate | Fillrate | Fillrate | Bus width (bit) | API (version) | API (version) | API (version) | API (version) | API (version) | Shader GFLOPS (High=SP / Medium=Half) | Usage |
| Series | Model | Date | Shader Cores SP/Half (mode) | Silicon area (mm$^2$) | Core Clock Max in MHz | Shader Clock Max in MHz | M triangles/s | G vertices/s | (GP/s) | (GT/s) | Bus width (bit) | OpenGL ES | OpenVG | OpenCL | OpenGL | Direct3D | Shader GFLOPS (High=SP / Medium=Half) | Usage |
| GCNano | GCNano Lite | | 1 (VEC-4) | 0.3 @ 28 nm | 100–200 @ 28HPM | 100–200 @ 28HPM | 40 | 0.1 | 0.2 | | | N/A | 1.1 | N/A | N/A | N/A | 3.2? | |
| GCNano | GCNano | | 1 (VEC-4) | 0.5 @ 28 nm | 200 @ 28HPM | 200 @ 28HPM | 40 | 0.1 | 0.2 | | | 2.0 | 1.1 | N/A | | | 3.2 | STM32MP157 |
| GCNano Ultra (Vega-Lite) | GCNano Ultra | | 1 (VEC-4) | 1 @ 28 nm | 400 @ 28HPM | 800 @ 28HPM | 80 | 0.2 | 0.4 | | | 2.0 | 1.1 | 1.2 optional | | | 6.4 | NXP i.MX8M Mini |
| GCNano Ultra (Vega-Lite) | GCNano Ultra3 | | 1 (VEC-4) | 1.6 @ 28 nm | 400 @ 28HPM | 800 @ 28HPM | 80 | 0.2 | 0.4? | | | 3.0 | 1.1 | 1.2 optional | | | 6.4? | |
| GC200 | GC200 | | | 0.57 @ 65 nm | 250 @ 65nmLP 375 @ 65nmG+ | | | | 0.375 | | 32/16 | — | 1.1 | — | — | — | | Jz4760 |
| GC400 | GC400 | | 1 (VEC-4) 4 (VEC-1) | 1.4 2 @ 65 nm | 250 @ 65nmLP 375 @ 65nmG+ | | 19 | 0.094 | 0.188 | | 32/16 | 2.0 | 1.1 | 1.1 EP | — | 11 | 3 | NXP i.MX6 SoloX: GC400T |
| GC400 | GC500 | | | | | | | | | | 32/16 | 2.0 | 1.1 | | | | | PXA920: GC530 |
| GC600 | GC600 | | 1 (VEC-4) 4 (VEC-1) | | | | | | | | 32/16 | 2.0 | 1.1 | 1.2/1.1 | 3.0/2.1 | 11 | | CuBox |
| GC800 | GC800 | | 1 (VEC-4) 4 (VEC-1) | 2.5 3.38 @ 65 nm | 800 @ 28HPM 250 @ 65nmLP 375 @ 65nmG+ | 1000 @ 28HPM | 38 @ 65nmG+ | 0.188 @ 65nmG+ | 0.375 @ 65nmG+ | | 32/16 | 3.0 | 1.1 | 1.2 optional | 3.0/2.1 | 11 | 8 / 16 | RK291x, ATM7013, ATM7019 |
| GC800 | GC860 | | 1 (VEC-4) 4 (VEC-1) | ? @ 65nm | 444 | | 35 | | 0.3 | | 32/16 | 3.0 | 1.1 | 1.2 optional | 3.0/2.1 | 11 | | Jz4770: GCW Zero NOVO7 |
| GC800 | GC880 | | 1 (VEC-4) 4 (VEC-1) | | | | 35 | 0.1 | 0.266 | | 32/16 | 3.0 | 1.1 | 1.2 optional | 3.0/2.1 | 11 | 3.2 | NXP i.MX6 Solo and DualLite |
| GCx000 | GC1000 (Vega-Lite) | | 2 (VEC-4) 8 (VEC-1) | 3.5 4.26 @ 65 nm | 800 @ 28HPM 500 @ 65nmLP 750 @ 65nmG+ | 1000 @ 28HPM | 123 58 @ 65nmG+ | 0.5 0.375 @ 65nmG+ | 0.8 0.75 @ 65nmG+ | | 32/16 | 3.0 | 1.1 | 1.2 optional | 3.0/2.1 | 11 | 16 | ATM7029: GC1000+, Marvell PXA986, PXA988, PXA1088 |
| GCx000 | GC2000 | | 4 (VEC-4) 16 (VEC-1) | 6.9 | 800 @ 28HPM | 1000 @ 28HPM | 267 | 1 | 1.6 | | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 32 | NXP i.MX6 Dual and Quad |
| GCx000 | GC4000 | | 8 (VEC-4) 32 (VEC-1) | 12.4 | 800 @ 28HPM | 1000 @ 28HPM | 267 | 2 | 1.6 | | 8 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 64 | HiSilicon K3V2 |
| Vega xX | GC3000 (Vega 1X) | | 4/8 (VEC-4) 16/32 (VEC-1) | | 800 @ 28HPM | 1000 @ 28HPM | 267 | 1 | 1.6 | | 8/4 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 32 / 64 | NXP S32V234 |
| Vega xX | GC5000 (Vega 2X) | | 8/16 (VEC-4) 32/64 (VEC-1) | | 800 @ 28HPM | 1000 @ 28HPM | 267 | 1 | 1.6 | | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 64 / 128 | Marvell PXA1928 |
| Vega xX | GC6000 (Vega 4X) GC6400? | | 16/32 (VEC-4) 64/128 (VEC-1) | | 800 @ 28HPM | 1000 @ 28HPM | 533 | 4 | 3.2 | | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 128 / 256 | |
| GC7000 (Vega 8X) | GC7000 UltraLite GC1500? | | 8 Vega | | | | | 0.5 | | 0.8 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 16 / 32 | Marvell PXA1908NXP i.MX8M Nano |
| GC7000 (Vega 8X) | GC7000 Lite GC7000L? | | 16 Vega | | | | | 1 | | 1.6 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 32 / 64 | Marvel PXA1936 NXP i.MX 8QuadPlus NXP i.MX 8Quad NXP i.MX8M |
| GC7000 (Vega 8X) | GC7000 | | 32 Vega | | 800 @ 28HPM | 1000 @ 28HPM | 1067 | 2 | 6.4 | 3.2 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 64 / 128 | NXP i.MX 8QuadMax |
| GC7000 (Vega 8X) | GC7200 | | 64 Vega | | | | | 4 | | 6.4 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 128 / 256 | |
| GC7000 (Vega 8X) | GC7400 | | 128 Vega | | | | | 8 | | 12.8 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 256 / 512 | |
| GC7000 (Vega 8X) | GC7600 | | 256 Vega | | | | | 16 | | 25.6 | 32/16 | 3.0 | 1.1 | 1.2 | 3.0/2.1 | 11 | 512 / 1024 | |
| GC8000 | GC8000 | | | | | | | | | | | 3.0 | 1.1 | 1.2 | | | | |
| Series | Model | Date | Shader Cores SP/Half (mode) | Silicon area (mm$^2$) | Core Clock Max in MHz | Shader Clock Max in MHz | Fillrate | Fillrate | Fillrate | Fillrate | Bus width (bit) | API (version) | API (version) | API (version) | API (version) | API (version) | Shader GFLOPS (High=SP / Medium=Half) | Usage |
| Series | Model | Date | Shader Cores SP/Half (mode) | Silicon area (mm$^2$) | Core Clock Max in MHz | Shader Clock Max in MHz | M triangles/s | G vertices/s | (GP/s) | (GT/s) | Bus width (bit) | OpenGL ES | OpenVG | OpenCL | OpenGL | Direct3D | Shader GFLOPS (High=SP / Medium=Half) | Usage |

## Adoption

They have announced that as of 2009 they have at least fifteen licensees who have used their GPUs in twenty embedded designs. Application processors using Vivante GPU technology:
* Marvell ARMADA range of SoCs
* NXP / Freescale i.MX Series
* Ingenic Semiconductor Jz4770
* ICT Godson-2H
* Rockchip RK2918
* Actions Semiconductor ATM7029
* HiSilicon K3V2
* InfoTM iMAP×210

## GC8000 Series

After Vivante was sold to VeriSilicon the Arcturus GC8000 series was released by VeriSilicon, which supports newer technologies such as OpenCL 3.0, OpenVX 1.2, OpenVG 1.1, OpenGL ES 3.2, OpenGL 4.0 and Vulkan 1.1.

## Linux support

There are no plans on writing a new DRM/KMS driver kernel driver for the Vivante hardware, since Vivante previously put out their Linux kernel component under the GNU General Public License (GPL), instead of maintaining it as a proprietary blob. The free Gallium3D-style device driver etna_viv has surpassed Vivante's own proprietary user-space driver in some benchmarks. It supports Vivante's product line of GC400 Series, GC800 Series, GC1000 Series, GC2000 Series, GC3000 Series, GC4000 Series, and GC7000lite.