Первоначально созданный для Linux, DXVK также может помочь вам «исправить» старые игры в Windows и повысить их производительность. Вот почему и как.
Direct3D был частью игр для Windows на протяжении десятилетий, объединяя сегментированный аппаратный ландшафт ПК под одним зонтиком с поддержкой 3D. Тем не менее, приложение DXVK, созданное в первую очередь для Linux, иногда является гораздо лучшим вариантом для использования, даже если вы работаете в Windows.
Вам нужна лучшая совместимость и, что более важно, производительность для ваших приложений и игр? Тогда вам нужно попробовать DXVK.
Проблема с DirectX в Windows
Microsoft создала DirectX как «унифицированное решение», которое помогло программистам использовать аппаратные возможности любого ПК. Вместо написания отдельного кода для каждой аппаратной части разработчики программного обеспечения могли «нацелиться» на библиотеки DirectX DirectDraw (2D-графика), Direct3D (3D с аппаратным ускорением) и DirectSound (аудио). Затем позвольте решению Microsoft «перевести» их код на «родной язык» каждой аппаратной части.
DirectX стал незаменимой базовой технологией в Windows и с тех пор развивается. Однако с Direct3D есть небольшая проблема: он не на 100% совместим с предыдущими версиями.
Microsoft и создатели графических процессоров, поддерживающих Direct3D API (например, «Nvidia, AMD и Intel»), время от времени прекращалась поддержка функций, появившихся в прошлых версиях Direct3D, но так и не получивших поддержки. тяга. Таким образом, некоторые старые игры могут некорректно работать на современном графическом процессоре с новейшими версиями Direct3D.
Что такое Вулкан?
Предположительно более «открытый» ответ Microsoft на Direct3D с закрытым исходным кодом, OpenGL представлял собой мутированную версию библиотек 3D-графики, используемых в графических рабочих станциях Silicon Graphics.
OpenGL, тем не менее, всегда отставал по функциям от Microsoft Direct3D. В конце концов, казалось более рациональным перезапустить усилия. Вот почему был создан Vulkan, также известный как «OpenGL Next», предлагающий более высокую производительность и улучшенный контроль над оборудованием.
Как и OpenGL, и в отличие от Microsoft Direct3D, привязанного к Windows, Vulkan является «открытым» и кросс-платформенным. Вы можете использовать Vulkan на Windows, Linux и даже на смартфонах. Хотя изначально он не поддерживается на Mac, его можно использовать там через MoltenVK.
Это была короткая версия. Чтобы узнать больше о Vulkan, ознакомьтесь с нашей статьей о какие библиотеки времени выполнения Vulkan есть в Windows.
Что такое DXVK?
DXVK — это обертка, «транслирующая» Direct3D в Vulkan. В человеческом мире переводчик может быть посредником между носителями английского и японского языков, позволяя им понимать друг друга. Точно так же «оболочки» или «уровни перевода» могут «брать» код, написанный для определенного оборудования, платформы или API, и переводить его для работы на другом.
DXVK изначально был разработан для Linux при поддержке Valve, которая также использует его в SteamOS и Steam Deck. Вы можете узнать больше об этом в нашей статье, где мы видели что такое Steam Proton и как он запускает игры для Windows на Steam Deck.
Почему вы должны использовать DXVK в Windows?
Если игра уже нормально работает на вашем оборудовании, нет причин использовать DXVK. Но некоторые игры, написанные для более старых версий DirectX, не работают «правильно» (если вообще работают) на более новых версиях DirectX и современном оборудовании.
Путем «перевода» старого кода Direct3D с ошибками в более современный API Vulkan минимальное влияние на производительность (если оно вообще есть). В то же время проблемные игры с неработающей графикой или отсутствующими функциями могут снова стать полностью играбельными.
Поскольку Vulkan находится на одном уровне с Direct3D 12, и обе они намного лучше (и быстрее), чем более старые версии Direct3D (как мы видели, когда мы сравнили DirectX 11 и DirectX 12), «перевод» старых игр Direct3D на Vulkan иногда может улучшить производительность игры.
Доказательством этого является работа Intel над графическими процессорами Arc. Intel может попытаться добавить поддержку каждой старой игры в драйверы графического процессора Arc. Вместо этого Intel решила поработать над дальнейшим улучшением DXVK. Первоначальные результаты «эксперимента» Intel привели к двукратному повышению производительности для старых игр, при этом десятки игр стали воспроизводиться «через» DXVK.
Как использовать DXVK в Windows
Использовать DXVK в Windows легко, так как нечего настраивать или настраивать. Вам нужно только загрузить его, распаковать в правильную папку игры, и он готов к работе.
Однако вы должны использовать правильную версию DXVK, которая соответствует версии Direct3D, используемой в вашей игре.
Вероятно, будет проще, если мы пройдем весь процесс вместе, чтобы увидеть, как вы можете загрузить последнюю версию DXVK, определить «технологию» вашей игры и установить правильные библиотеки DLL в нужную папку.
Как скачать DXVK
DXVK — это программное обеспечение с открытым исходным кодом, которое можно использовать бесплатно. Вы можете найти его последнюю версию на GitHub.
- Посетите DXVK официальная страница GitHub и нажмите на Последний ссылка на версию справа на странице, под Релизы.
- Прокрутите страницу релизов вниз и найдите Ресурсы раздел последней версии. Нажмите на последний архив DXVK tar.gz, чтобы загрузить его. На момент написания это была версия 2.2.
- Сохраните загруженный архив где-нибудь, так как вам нужно будет распаковать его содержимое в папку каждой игры, которую вы хотите запустить с DXVK вместо Direct3D.
Как выбрать правильную версию DXVK
Если вам нужно узнать, какая версия Direct3D используется в вашей игре, вам может помочь веб-сайт PC Gaming Wiki.
- Посещать Игровая вики для ПК в браузере и используйте поле поиска в правом верхнем углу, чтобы найти игру, в которую вы хотите добавить DXVK.
- Когда вы найдете свою игру, перейдите на ее страницу и прокрутите вниз, чтобы перейти к Дополнительная информация раздел. Обратите внимание на таблицы API. Там, на Технические характеристики и Поддерживается столбцы, вы увидите версию Direct3D, которую использует ваша игра. Внизу, Исполняемый, 32-битный, и 64-битный столбцы «скажут» вам, какую архитектуру вам следует выбрать.
Как добавить DXVK в свои игры
Теперь, когда вы знаете, какую версию Direct3D и архитектуру процессора использует ваша игра, вы можете добавить правильную версию DXVK в ее папку.
- Откройте архив DXVK с помощью вашего любимого менеджера архивов (в этой статье мы используем WinRAR) и войдите в единственную папку DXVK, которую вы там увидите.
- Внутри вы найдете две подпапки, по одной для каждой архитектуры компьютера. Введите правильный для вашей игры. Даже если ваша ОС 64-битная, как и большинство современных версий Windows, если ваша игра 32-битная, вам следует выбрать 32-битную папку.
- Выберите DXGI.DLL плюс правильная DLL для версии Директ3D ваша игра использует. Как вы увидите, есть еще три библиотеки DLL, по одной для каждой из предыдущих версий Direct3D: 9, 10 и 11.
- Найдите локальную папку, в которой установлена ваша игра, и найдите подпапку с ее исполняемым файлом («файл, из которого запускается игра»). Извлеките библиотеки DLL из предыдущего шага в эту папку.
Как протестировать и оценить вашу улучшенную игру
Если вы запустите свою игру сейчас, она должна использовать Vulkan вместо Direct3D и, надеюсь, работать лучше.
Даже если вы не видите каких-либо резких изменений в частоте кадров, иногда улучшения можно «ощутить» другими способами. Например, мы попробовали DXVK с классической игрой Batman: Arkham City на ПК с процессором Ryzen 5900x, 64 ГБ ОЗУ и графическим процессором Nvidia RTX 3070. Наше оборудование уже превзошло лучшие характеристики этой старой игры, достигнув очень высокой частоты кадров. Даже если бы они стали выше с Вулканом, разница не была бы легко заметна.
Однако действие игры стало более плавным. Переходы между экранами, загрузка уровней и нажатие Alt + Tab были почти мгновенными с DXVK.
Когда не следует использовать DXVK
DXVK имеет много преимуществ и может перенести производительность старых игр в современную эпоху. Несмотря на это, это не серебряная пуля для повышения производительности, и иногда его просто не стоит использовать.
1. DXVK не улучшает производительность игры
Если вы добавили библиотеки DXVK в свою игру, но после этого не увидели никакой разницы, вы можете удалить их снова, если хотите. Для этого вы можете удалить библиотеки DLL, которые вы добавили в папку с игрой.
2. DXVK приводит к ухудшению производительности или появлению новых сбоев
Иногда добавление DXVK в игру может иметь противоположный эффект. К сожалению, у конечного пользователя нет возможности исправить такие проблемы.
Появились ли проблемы с производительностью игры или визуальные глюки после добавления DXVK? Выйдите из игры и удалите DLL-файлы DXVK из его каталога.
3. Вы хотите играть в свою игру онлайн
DXVK — это уровень совместимости, который влияет только на графический вывод игры. Тем не менее, некоторые компании выступают против любых модификаций своих игр, чтобы обеспечить справедливую среду для всех.
DXVK может и не быть «читерством», но это все же «модификация игры», и он может быть помечен как таковой.
4. В игре уже есть встроенная поддержка Vulkan
Если игра уже использует Vulkan API, например Doom Eternal, нет причин устанавливать ее вывод на Direct3D, чтобы затем переводить ее на Vulkan.
5. В игре используется Direct3D 12.
Так как Direct3D 12 почти полностью соответствует Vulkan, ничего не выиграешь от перевода одного ультрасовременного графического API на другой.
Улучшите свои старые игры с помощью «переведенного» 3D в Windows
То, что началось как способ играть в больше игр для Windows в Linux, в конечном итоге стало полезным решением для обеспечения совместимости и повышения производительности. Так что держите под рукой последний архив DLL DXVK. Добавьте их в любую игру, в которой вы хотите устранить сбои, повысить производительность, добиться более плавного игрового процесса и повысить скорость отклика.
Даже если это не поможет, попытка займет всего несколько секунд, и чаще всего вы можете быть удивлены результатами.