DXVK

DXVK

DXVK — это программный проект с открытым исходным кодом, позволяющий запускать приложения и игры, написанные для Windows с использованием графического API Direct3D версий 9, 10 и 11, на системах Linux и других Unix-подобных операционных системах. Это достигается путём преобразования вызовов Direct3D в эквивалентные команды Vulkan — современного, низкоуровневого графического API, который активно поддерживается в Linux.

Проще говоря, DXVK выступает как «переводчик» между Windows-ориентированными приложениями и Linux-средой, позволяя запускать игры с Windows-графикой на другой платформе без значительной потери производительности.

Контекст появления DXVK

В последние годы интерес к Linux как к игровой платформе заметно вырос. Этому способствовали несколько факторов: развитие Steam на Linux, появление Proton от Valve (инструмента совместимости для запуска Windows-игр на Linux), а также растущее сообщество пользователей, выбирающих свободное ПО.

Однако у Linux по-прежнему отсутствует полноценная нативная поддержка Direct3D — ключевого компонента Windows-графики. Именно здесь на сцену выходит DXVK, который стал важным элементом технологического стека для обеспечения совместимости.

Как работает DXVK

DXVK реализован как набор динамических библиотек (файлов .dll), которые подменяют оригинальные компоненты Direct3D в Windows-программах. Когда приложение или игра на Windows вызывает, к примеру, функцию Direct3D 11 для отрисовки сцены, DXVK перехватывает этот вызов и превращает его в аналогичный вызов Vulkan.

Этот процесс называется «транслированием графических команд». DXVK не эмулирует Direct3D, а преобразует вызовы напрямую, что позволяет добиться высокой производительности, близкой к оригинальной Windows-среде. В ряде случаев игры даже работают быстрее на Linux с DXVK, чем на Windows.

DXVK в связке с Wine и Proton

DXVK сам по себе не может запустить Windows-программу. Он работает в составе других решений, таких как Wine — слой совместимости, позволяющий запускать Windows-программы на Unix-подобных системах. Wine перехватывает вызовы Windows API, а для графических функций может использовать DXVK в качестве модуля, заменяющего Direct3D.

Valve активно использует DXVK в своём проекте Proton, который встроен в Steam. Proton сочетает Wine, DXVK и другие компоненты, позволяя запускать тысячи Windows-игр на Linux буквально в один клик — без ручной настройки.

Почему используют Vulkan, а не OpenGL

На первый взгляд может показаться логичным, что для замены Direct3D можно было бы использовать OpenGL — другой графический API, традиционно доступный в Linux. Однако Vulkan имеет ряд преимуществ:

  • Он ближе по архитектуре к Direct3D 12, чем OpenGL.
  • Предоставляет более низкоуровневый контроль над видеокартой.
  • Лучше масштабируется на многопоточность.
  • Позволяет достичь большей производительности при правильной реализации.

Таким образом, выбор в пользу Vulkan объясняется техническими особенностями, обеспечивающими более точное и быстрое преобразование графических команд из Direct3D.

Возможности и ограничения

DXVK поддерживает Direct3D 10 и 11, а также в ограниченном объёме Direct3D 9 (через отдельный проект DXVK-native или d9vk). Однако не все игры работают идеально: могут встречаться артефакты, проблемы с производительностью или падения при запуске. Всё зависит от конкретного проекта и его особенностей.

С другой стороны, большинство современных и популярных игр, особенно тех, что используют Direct3D 11, отлично запускаются через DXVK. Некоторые даже работают стабильнее, чем на Windows, особенно на системах с гибридной графикой или нестандартным железом.

Технические аспекты

DXVK написан на языке C++ и активно использует возможности Vulkan API. Для кэширования шейдеров используется специальная система, позволяющая ускорять повторные запуски игр. Также DXVK поддерживает асинхронную компиляцию шейдеров, многопоточную обработку и другие оптимизации.

Исходный код проекта доступен на GitHub, и любой желающий может внести вклад или собрать свою версию.


DXVK и будущее кроссплатформенных игр

Появление DXVK стало важной вехой в развитии игровой экосистемы на Linux. Он позволяет запускать игры, которые иначе были бы недоступны на этой платформе, расширяя выбор для пользователей и снижая зависимость от одной операционной системы.

Кроме того, успех DXVK стимулирует разработчиков задумываться о поддержке Vulkan в своих играх изначально, что может привести к более широкой кроссплатформенной совместимости в будущем.

Заключение

DXVK — это технологическое решение, которое открыло новую эру в совместимости между Windows и Linux. Благодаря ему тысячи игр стали доступны пользователям альтернативных операционных систем, а производительность — на уровне или даже выше, чем в родной среде. Это пример того, как энтузиасты и открытые технологии могут изменить индустрию без участия крупных корпораций.

DXVK 2.7 отказывается от поддержки устаревших драйверов, обеспечивая повышение производительности

DXVK 2.7 отказывается от поддержки устаревших драйверов, обеспечивая повышение производительности

Почти через месяц после предыдущего релиза 2.6.2 DXVK, слой трансляции на основе Vulkan для Direct3D 9, 10 и 11, в первую очередь используемый для повышения производительности и совместимости игр Windows на Linux через Wine или Proton, только что выпустил свое последнее обновление v2.7. Одним из самых значительных изменений является требование расширения Vulkan «VK_KHR_maintenance5», которое неявно использовалось с
DXVK 2.6.2 содержит целевые исправления для VR, графических процессоров Intel и ошибок, связанных с играми

DXVK 2.6.2 содержит целевые исправления для VR, графических процессоров Intel и ошибок, связанных с играми

Выпущена версия DXVK 2.6.2 с исправлениями ошибок и обходными путями для конкретных игр, улучшающими совместимость и стабильность перевода Direct3D на основе Vulkan в Linux и других системах. Через два месяца после предыдущего выпуска 2.6.1 DXVK, слой трансляции на основе Vulkan для Direct3D 9, 10 и 11, который в основном используется для повышения производительности и совместимости игр
DXVK 2.5.2 Улучшает игровой опыт Windows

DXVK 2.5.2 Улучшает игровой опыт Windows

DXVK, уровень трансляции на основе Vulkan для Direct3D 9, 10 и 11, который в основном используется для повышения производительности и совместимости игр для Windows в Linux с помощью Wine или Proton, только что выпустил своё последнее обновление — v2.5.2. Начнём с примечательной настройки для систем Windows. Если графический драйвер поддерживает расширение VK_EXT_fullscreen_exclusive, DXVK теперь будет
DXVK 2.5 улучшает управление памятью в God of War и других видеоиграх

DXVK 2.5 улучшает управление памятью в God of War и других видеоиграх

DXVK 2.5 — реализация D3D9, D3D10 и D3D11 на основе Vulkan для Linux/Wine — теперь доступна для скачивания в виде значительного обновления, улучшающего поддержку множества игр. DXVK 2.5 вышел через полтора месяца после DXVK 2.4.1 и улучшает управление памятью для God of War и других видеоигр, периодически выполняя дефрагментацию памяти, чтобы вернуть в систему неиспользуемую память. Однако

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала