Легендарную 3dfx Voodoo 3 вернули к жизни в Linux спустя 27 лет: видеокарта вновь запускает Quake

Прокомментировать Просмотры: 2

Изображение сгенерировано ChatGPT // Источник изображения: ChatGPT

В грядущем релизе ядра Linux 7.3 появится неожиданный патч для одной из самых знаковых видеокарт конца 90-х — 3dfx Voodoo 3. Спустя 25 с лишним лет операционная система научилась инициализировать этот графический адаптер автономно, не полагаясь на возможности устаревшего системного BIOS материнской платы.

Нововведения коснулись встроенного драйвера tdfxfb, обеспечивающего функционирование Voodoo 3 в режиме кадрового буфера (framebuffer). Ранее драйвер исходил из предпосылки, что первичная настройка адаптера уже выполнена на уровне прошивки материнской платы. Если на классических ПК прошлых лет это происходило автоматически, то на современных материнских платах, компьютерах Amiga и прочих нетипичных платформах графический чип опознавался в шине, но дисплей оставался темным.

Именно этот барьер попытался преодолеть энтузиаст Дэниел Палмер при попытке задействовать Voodoo 3 на системе Commodore Amiga 4000, оснащенной интерфейсным мостом Mediator PCI. Ядро Linux фиксировало присутствие контроллера, но сам видеоускоритель оставался в неактивном состоянии.

Обновленный модуль драйвера устраняет данное ограничение. Отныне ядро Linux способно самостоятельно считывать Video BIOS непосредственно с самой Voodoo 3 и проводить полную процедуру конфигурации, приводя устройство в рабочее состояние без какого-либо участия системной прошивки компьютера.

Работоспособность исправления уже подтверждена как на современной аппаратной платформе x86-64, так и на ретро-компьютере Amiga 4000. Важно отметить, что патч рассчитан исключительно на семейство Voodoo 3 — более поздние карты Voodoo 4 и 5 на базе процессоров VSA-100 пока не поддерживаются в силу кардинальных отличий в структуре их прошивок.

Впрочем, полноценной интеграции в актуальный графический стек Linux ждать не приходится. Драйвер tdfxfb все так же опирается на классический механизм framebuffer, решая базовые задачи вывода изображения и текстовой консоли. Поддержка современных стандартов вроде Wayland, DRM/KMS, Mesa и актуальных спецификаций OpenGL отсутствует.

Однако куда больший интерес представляет сопутствующая разработка Палмера. Он спроектировал экспериментальный символьный интерфейс /dev/tdfx3d, предоставляющий софту прямой доступ к 3D-ядру карты. На этой базе функционируют легковесные библиотеки smoltdfx и smolminigl, реализующие базовый OpenGL 1.x в обход тяжеловесных компонентов вроде Mesa, оконной системы X11 и проприетарного API Glide.

Первые результаты весьма обнадеживают: на Voodoo 3 удалось запустить легендарный Quake с полноценным аппаратным рендерингом 3D-сцен. Хотя фреймрейт пока оставляет желать лучшего, а поддержка ряда функций вроде мультитекстурирования еще шлифуется, сам факт работоспособности впечатляет.

Чтобы ускорить отладку кода, разработчик создал специализированный модуль эмуляции Voodoo 3 для QEMU. В процессе он активно использовал нейросеть Claude: идентичный графический контент параллельно рендерится на виртуальном и реальном железе, а автоматический попиксельный анализ полученных кадров позволяет мгновенно локализовать ошибки.

Данный подход сулит отличные перспективы для ретро-энтузиастов. Появляется теоретическая возможность проброса физической PCI-карты Voodoo 3 (PCI passthrough) напрямую в гостевую Windows 98 под виртуализацией, что позволит запускать классические тайтлы с полной аппаратной аутентичностью.

Разумеется, патч ядра Linux 7.3 не превратит Voodoo 3 в современный видеоадаптер, но он снимает критический барьер совместимости, мешавший ее интеграции в экзотические или новые конфигурации. А благодаря экспериментальному открытому стеку трехмерной графики раритетная железка получила шанс на вторую жизнь — и снова готова отрисовывать уровни Quake.

 

Источник: iXBT

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов