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

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

Розробник ігрового програмного забезпечення Ділан Беррі створив власну відеокарту. Проект FuryGPU, яким він сам займався у вільний від роботи час, зажадав чотирьох років. За цей період Беррі встиг значно підтягнути знання в інженерній справі, а саме у розробці графічних прискорювачів та їхньому програмуванні. Його відеокарта формату PCIe, заснована на платформі Xilinx FPGA, здатна запускати гру Quake.

Ідея створити власну відеокарту відвідала Беррі після його знайомства з проектом іншого ентузіаста Бена Ітера (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 він взявся за написання для неї програмного забезпечення.

За словами ентузіаста, розробка драйвера Windows для FuryGPU виявилася найболючішою частиною всього проекту, навіть незважаючи на те, що останні 14 років його основної діяльності були пов'язані з програмним забезпеченням рендерингу графіки в індустрії розробки ігор. Спочатку Беррі лише хотів створити відеокарту та довести, що вона працює, запустивши на ній простий демо-ролик. Однак з розвитком проекту ентузіаст поставив собі за мету досягти прийнятного рівня продуктивності відеокарти в класичній ПК-грі Quake.

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

Ще місяць тому Беррі опублікував прискорене відео, на якому Quake працював на даній відеокарті з роздільною здатністю 720p з частотою кадрів до 44. Однак, за словами розробника, карта здатна на більше. Він виявив деякі вузькі місця, які усуватиме при оптимізації.

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