Настал исторический момент для поклонников классических игр на Linux и Wine: переводчик D7VK, превращающий вызовы старого Direct3D 7 в современный Vulkan, достиг статуса «production ready» и получает версию 1.0.
Что это значит? Не то, что все баги исправлены, а все функции реализованы. Это значит, что «хорошо ведущие себя» игры на D3D7 теперь отлично поддерживаются и работают без проблем.
Зачем вообще нужен D7VK? Сравнение с WineD3D
Преимущества перед WineD3D:
-
Поддержка сглаживания (Anti-aliasing): Работает настройка
D3DRENDERSTATE_ANTIALIAS, также можно принудительно его включить. -
Целевые исправления производительности для проблемных игр.
-
Встроенные ограничители FPS для игр, которые ломаются на высоких кадрах (к сожалению, для D3D7 это частая проблема).
Недостатки:
-
Несколько отсутствующих функций D3D7 (но они, скорее всего, будут добавлены позже).
-
Особенности работы с Wayland (WSI) могут быть неидеальными.
Не работающее:
-
Достаточно много оставшихся багов.
-
Устаревшая архитектура, которая по какому-то чуду в большинстве случаев работает достаточно хорошо.
Когда WineD3D всё ещё нужен?
Не спешите удалять старый добрый WineD3D. Он понадобится для:
-
Более ранних API: Direct3D до 7-й версии и DDraw.
-
Игр, использующих устаревшую связку DDraw <-> D3D7 (к счастью, это не так распространено).
-
Его отличной общей совместимости и покрытия функций.
-
Видеокарт, не поддерживающих Vulkan 1.3.
-
Бенчмаркинга (для чистоты сравнения).
Тест для примера: Запуск стандартного бенчмарка 3DMark 2000 на RTX 4070.
-
D7VK v1.0: 115.9 FPS
-
WineD3D*: 78.7 FPS
*Использован Wine Staging 11.0-rc1 с бэкендом OpenGL. Vulkan-бэкенд Wine почему-то не запустил 3DMark 2000.
Благодарности:
Разработчик отмечает, что проект был бы невозможен без:
-
Команды WineD3D (за реализацию DDraw).
-
Команды DXVK (@doitsujin, @misyltoad, @K0bin, @AlpyneDreams).
-
@elishacloud и @CkNoSFeRaTU за полезные советы и «гениальные, но проклятые» обходные пути.
-
@Blisto91 за вечную поддержку всех безумных начинаний с древними API. P.S.: Не верьте ему, что он не разработчик — он просто в отрицании.
Лучшие игры эпохи D3D7, которые теперь «летают»
D7VK открывает второе дыхание для культовых проектов. Вот лишь несколько примеров полностью поддерживаемых шедевров:
-
Sacrifice
-
Dark Reign 2
-
Clive Barker's Undying
-
Unreal Tournament
-
Vampire: The Masquerade - Redemption
-
Hitman: Codename 47
-
Deus Ex
-
Colin McRae Rally 2.0
-
Black & White
-
Wizardry 8
-
...и многие другие!
Итог: Пора сокращать бэклог!
Релиз D7VK 1.0 — отличный повод вспомнить, что «новое — не всегда лучше». Многие из этих «древних» игр на D3D7 по-прежнему фантастически хороши и заслуживают нашей благодарности даже сегодня.
Наслаждайтесь классикой с новой производительностью!