Энтузиаст с нуля создал видеокарту и запустил на ней Quake

0
2

Разработчик игрового программного обеспечения Дилан Бэрри (Dylan Barrie) создал собственную видеокарту. Проект FuryGPU, которым он в одиночку занимался в свободное от работы время, потребовал четырёх лет. За этот период Бэрри успел значительно подтянуть знания в инженерном деле, а именно в разработке графических ускорителей и их программировании. Его видеокарта формата PCIe, основанная на платформе Xilinx FPGA, способна запускать игру Quake.

3c653f28d8a97cc88ece02a13886493c

Источник изображений: Dylan Barrie

Идея создать собственную видеокарту посетила Бэрри после его знакомства с проектом другого энтузиаста, Бена Итера (Ben Eater), собравшего с нуля программируемый 8-битный компьютер. Как можно увидеть на фотографиях, видеокарта FuryGPU выглядит как вполне типичный графический ускоритель PCIe 20-летней давности. Правда, он оснащён современными видеоразъёмами DisplayPort и HDMI. В рамках этого проекта было создано не только аппаратное обеспечение. По словам Бэрри, на самом деле самой сложной частью разработки было написание драйверов для Windows.

Бэрри начал реализовывать свою мечту о создании видеокарты после того, как взял в руки макетную плату Arty Z7 с FPGA и провёл предварительную разработку и тестирование. Впоследствии проект получил импульс благодаря дебюту системных модулей Xilinx Kria SoM (System-on-Modules), сочетающих в себе «безумно дешёвые ПЛИС Zynq UltraScale+ с массой модулей DSP, сравнительно большим количеством LUT и FF, а также усиленное ядро PCIe», объясняет энтузиаст.

Чтобы перейти от макетной платы к дизайну видеокарты, которую можно видеть на фотографиях, Бэрри самостоятельно изучил язык описания и верификации оборудования SystemVerilog, а также программный пакет KiCAD EDA/CAD для проектирования электроники. По его словам, для разработки схемы FuryGPU с 4-канальным PCIe потребовались титанические усилия, даже при наличии схемы FPGA, встроенной в SoM. После сборки FuryGPU он принялся за написание для неё программного обеспечения.

3d718b17f9e5df76d885dd5c2c241c75

По словам энтузиаста, разработка драйвера Windows для FuryGPU оказалась «самой болезненной» частью всего проекта, даже несмотря на то, что последние 14 лет его основной деятельности были связаны с программным обеспечением рендеринга графики в индустрии разработки игр. Изначально Бэрри лишь хотел создать видеокарту и доказать, что она работает, запустив на ней простой демо-ролик. Однако с развитием проекта энтузиаст поставил перед собой цель добиться приемлемого уровня производительности видеокарты в классической ПК-игре Quake.

d9c1652a38c238bc2782432ee7f91d96

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

Ещё месяц назад Бэрри опубликовал ускоренное видео, на котором Quake работал на данной видеокарте в разрешении 720p с частотой кадров до 44. Однако, по словам разработчика, карта способна на большее. Он обнаружил некоторые узкие места, которые будет устранять при оптимизации.

FuryGPU является открытым проектом. Бэрри собирается опубликовать на сайте проекта статью, в котором подробно опишет весь процесс разработки видеокарты, опубликует схемы, драйверы, API, дополнительные материалы, а также порт игры Quake, оптимизированной под этот ускоритель.

Источник: 3Dnews.ru