Прототип видеоадаптера FuryGpu - LoungeEagle.ru

Прототип видеоадаптера FuryGpu

Инженер Дилан Барри разработал прототип самодельного видеоадаптера под названием FuryGpu на базе ПЛИС Xilinx Zynq UltraScale+. Он представляет собой отдельную плату, подключаемую к ПК через интерфейс PCIe. 

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

Пока же возможности FuryGpu сравнимы с продвинутой видеокартой середины 1990-годов. Он поддерживает набор фиксированных функций, но не выполнение программных шейдеров. В центре разработки оказались компоненты для рендеринга, растеризации и обработки текстур. Для выполнения графических операций задействуется собственный графический API FuryGL по типу API Vulkan,однако совместимости с ним нет из-за отсутствия поддержки шейдеров.

Возможности FuryGpu:

  • четыре независимых тайловых растеризатора;
  • работа на частоте 400MHz, работа блока управления текстурами на частоте 480MHz;
  • фронтенд для выполнения операций с плавающей запятой (fp32);
  • блок маппинга и обработки текстур с поддержкой линейной и билинейной фильтрации с поддержкой MIP-текстурирования;
  • интерфейс PCIe Gen 2×4, порты DisplayPort и HDMI для подключения монитора.

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

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

Разработчик считает, что может заставить Quake «работать намного быстрее», поскольку он уже нашёл некоторые узкие места, требующие оптимизации.