Программист самостоятельно разработал видеокарту и запустил на ней Quake

Разработчик игрового программного обеспечения Дилан Бэрри с нуля создал собственную видеокарту и запустил на ней Quake. Как сообщает портал Tom’s Hardware, над проектом FuryGPU, программист в одиночку работал более четырех лет.

Программист самостоятельно разработал видеокарту и запустил на ней Quake
© Dylan Barrie - FuryGPU

Идея создать собственную видеокарту посетила Бэрри после того, как он увидел работу другого энтузиаста Бена Итера — он с нуля собрал собственный программируемый 8-битный компьютер. Первоначально разработчик запустить на своей разработке простой демо-ролик, однако с развитием проекта он поставил более сложную цель — добиться приемлемой производительности в игре Quake.

Реализовывать мечту Бэрри начал после покупки отладочной макетной платы Arty Z7, на которой программист предварительно разработал и протестировал систему. Впоследствии проект получил новый импульс благодаря выпуску системных модулей Xilinx Kria — создатель видеокарты отметил, что при сравнительно невысокой цене они дают хорошую производительность.

Чтобы перейти от макетной платы к полноценной видеокарте Бэрри самостоятельно изучил язык описания и верификации оборудования SystemVerilog, а также программный пакет KiCAD EDA/CAD для проектирования электроники. Следующим этапом стало написание программного обеспечения. Разработка драйвера для Windows оказалась «самой болезненной» частью проекта несмотря на то, что последние 14 лет Бэрри работал над программным обеспечением для рендеринга графики в индустрии разработки игр.

После написания драйвера программист также создал собственный API для взаимодействия с GPU и драйверы ядра Windows для дисплея и звука, получив в результате полноценную видеокарту, «способную запустить Quake при 60 кадрах в секунду». На опубликованном месяц назад ролике видно, что пока игра идет с частотой до 44 кадров в секунду, но разработчик отметил, что графический ускоритель способен на большее. Бэрри уже выявил ряд узких мест и в будущем оптимизирует работу устройства.

Сама карта на первый взгляд выглядит как стандартная видеокарта начала конца 90-х — начала 00-х, однако для подключения в ней используются современные порты — DisplayPort и HDMI. Проект является открытым — Бэрри планирует опубликовать весь процесс разработки, схемы, драйверы, API и дополнительные материалы в Сети.