Современные GPU топового сегмента представляют собой огромные и сложные чипы с десятками миллиардов транзисторов. И даже у бюджетных GPU вроде Nvidia GB207 уже больше 10 млрд транзисторов. Энтузиаст и дизайнер FPGA Понгсагон Вишит (Pongsagon Vichit) решил, напротив, создать самый маленький GPU.
Проект называется TinyGPU v2.0, и это действительно крошечный графический процессор, причём даже не по текущим меркам, но и по меркам последних 20 лет.
GPU содержит всего 200 000 транзисторов. Для сравнения, Nvidia GT218S, на котором почти 20 лет назад была основана очень бюджетная видеокарта GeForce 210, состоял из 260 млн транзисторов.
TinyGPU v2.0 описывается как автономный графический процессор, способный выполнять растеризацию, а также задачи преобразования и освещения. Он работает на частоте 25 МГц поддерживает частоту кадров всего от 7,5 до 15 к/с. Более того, это относится к довольно низкополигональным 3D-моделям с разрешением рендеринга до 320 x 240 пикселей и 4-битным цветом.
Несмотря на параметры, напоминающие домашние компьютеры начала 80-х, внутри реализованы функции, характерные для более поздних поколений графики. TinyGPU v2.0 выполняет интерактивное преобразование 3D-векторов в растровое изображение и использует аппаратные блоки трансформации и освещения — подход, который получил широкое распространение на потребительском рынке с появлением Nvidia GeForce 256 в октябре 1999 года.
Среди заявленных возможностей TinyGPU v2.0: 4-битный двойной буфер кадра (два кадровых буфера для плавного вывода), 8-битный буфер глубины в QSPI RAM (памяти с последовательным интерфейсом, используемой для хранения информации о расстоянии до пикселей), поддержка до 1000 треугольников на сцену, отсечение невидимых граней (backface culling), один динамический направленный источник света и плоское закрашивание, при котором цвет задаётся для целого треугольника.
