Print this page
Published in Graphics

World’s smallest GPU goes big with 3D graphics

by on11 November 2025


TinyGPU v2.0 can render 1,000 triangles at 15 frames per second

Retro computing fans are buzzing over TinyGPU v2.0, a homebrew graphics processor from FPGA tinkerer and vintage PC enthusiast Pongsagon Vichit.

According to Tom's Hardware, the pint-sized chip, built with around 200,000 transistors, can handle 3D rasterisation, transformation, and lighting, and is a mini homage to Nvidia’s legendary GeForce 256.

Vichit, known online as @MattDIYgraphics, has submitted the design to the Tiny Tapeout shuttle for fabrication. The chip will be etched on a 4x4 tile layout, the largest the hobbyist platform allows. For comparison, Nvidia’s RTX 5090 has 92.2 billion transistors, so you can guess which one wins the benchmark battle.

A demo video shows the TinyGPU v2.0 running on an FPGA board, pushing out 320 x 240 pixel graphics in 4-bit colour while a Super Nintendo controller manipulates 3D models and lighting in real time. It’s a far cry from modern gaming standards but a giant leap from Vichit’s earlier “Tiniest GPU,” which could barely juggle two polygons.

Running at 25 MHz, the upgraded chip renders between 7.5 and 15 frames per second with up to 1,000 triangles. Its retro flavour hides some proper technical sophistication, including vector-to-raster conversion and genuine transformation and lighting, features first seen in consumer GPUs in 1999.

TinyGPU v2.0 also includes a 4-bit double buffer, an 8-bit depth buffer on QSPI RAM, backface culling, flat shading and support for one dynamic directional light. All that on a chip that costs its creator about $1,500 to fabricate.

Despite its modest horsepower, the project has impressed the retro hardware crowd for pushing FPGA design to its limit. While it will not run Cyberpunk 2077 any time soon, it stands as a reminder that great engineering does not always require billions of transistors or corporate budgets the size of small nations.

Rate this item
(0 votes)