Direct3D был частью Windows gaming на протяжении десятилетий, объединяя сегментированный аппаратный ландшафт ПК под одной эгидой с поддержкой 3D. Однако приложение, созданное в основном для Linux, DXVK, иногда является гораздо лучшим вариантом для использования, даже если вы используете Windows.

Хотите улучшить совместимость и, что более важно, производительность ваших приложений и игр? Тогда вам нужно попробовать DXVK.

Проблема с DirectX в Windows

Microsoft создала DirectX как «унифицированное решение», которое помогало программистам использовать аппаратные возможности любого ПК. Вместо того, чтобы писать отдельный код для каждой аппаратной части, разработчики программного обеспечения могли бы «нацелиться» на библиотеки DirectDraw DirectDraw (2D графика), Direct3D (3D с аппаратным ускорением) и DirectSound (аудио) DirectX. Тогда позвольте решению Microsoft «перевести» их код на «родной язык» каждой аппаратной части.

DirectX стала незаменимой базовой технологией в Windows и с тех пор постоянно развивается. Однако в Direct3D есть небольшая загвоздка: она не на 100% обратно совместима.

Microsoft и создатели графических процессоров, поддерживающих Direct3D API (например, «Nvidia, AMD и Intel»), иногда прекращали поддержку функций, представленных в прошлых версиях Direct3D, но которые так и не получили распространения. Таким образом, некоторые старые игры могут некорректно запускаться на современном графическом процессоре с новейшими версиями Direct3D.

Что такое Vulkan?

Предположительно, более «открытый» ответ на Direct3D с закрытым исходным кодом Microsoft, OpenGL был измененной версией библиотек 3D-графики, используемых на графических рабочих станциях Silicon Graphics.

OpenGL, однако, всегда отставал с точки зрения функциональности по сравнению с Direct3D от Microsoft. В конце концов, казалось более рациональным перезагрузить программу. Вот почему был создан Vulkan, также известный как «OpenGL Next», предлагающий лучшую производительность и расширенный контроль над оборудованием.

Как и OpenGL, и в отличие от Direct3D от Microsoft для 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 в более современный Vulkan API, вы минимизируете потери в производительности (если таковые имеются). В то же время проблемные игры со сломанной графикой или отсутствующими функциями могут снова стать полноценно воспроизводимыми.

Поскольку Vulkan находится на одном уровне с Direct3D 12, и обе они намного лучше (и быстрее), чем старые версии Direct3D (как мы видели, когда сравнивали DirectX 11 С DirectX 12), «перевод» старых игр Direct3D на Vulkan иногда может улучшить производительность игры.

Работа Intel над своими графическими процессорами Arc является доказательством этого. Intel могла бы попробовать добавить поддержку всех старых версий в драйверах графических процессоров Arc. Вместо этого Intel решила работать над дальнейшим улучшением DXVK. Первоначальные результаты «эксперимента» Intel приводят к увеличению производительности в 2 раза для старых игр, при этом десятки игр воспроизводятся «через» DXVK.

Как использовать DXVK в Windows

Использовать DXVK в Windows легко, поскольку здесь нечего настраивать. Вам нужно только загрузить его, распаковать в нужную папку игры, и все готово к работе.

Однако вы должны использовать правильную версию DXVK, которая соответствует версии Direct3D, используемой вашей игрой.

Вероятно, будет проще, если мы пройдем весь процесс вместе, чтобы увидеть, как вы можете загрузить последнюю версию DXVK, определить «технологию» вашей игры и установить нужные библиотеки DLL в нужную папку.

Как загрузить DXVK

DXVK — это бесплатное программное обеспечение с открытым исходным кодом. Вы можете найти его последнюю версию на GitHub.

  1. Посетите официальную страницу DXVK на GitHub и нажмите на ссылку на последнюю версию справа от страницы, в разделе Релизы.
  2. Прокрутите страницу выпусков вниз и найдите раздел «Ресурсы» последней версии. Нажмите на последнюю версию DXVK tar.gz архив, чтобы загрузить его. На момент написания статьи это была версия 2.2.
    Ресурс последней версии DXVK
  3. Сохраните где-нибудь загруженный архив, поскольку вам нужно будет извлекать его содержимое в папку каждой игры, которую вы хотите запустить с помощью DXVK вместо Direct3D.

Как выбрать правильную версию DXVK

Если вам нужно узнать, какую версию Direct3D использует ваша игра, вам может помочь веб-сайт PC Gaming Wiki.

  1. Посетите PC Gaming Wiki в своем браузере и воспользуйтесь полем поиска в правом верхнем углу, чтобы найти игру, в которую вы хотите добавить DXVK.
  2. Когда вы найдете нужную игру, перейдите на ее страницу и прокрутите вниз, чтобы перейти к разделу Другая информация. Обратите свое внимание на таблицы API. Там, в столбцах «Технические характеристики» и «Поддерживаемые«, вы увидите версию Direct3D, используемую вашей игрой. Столбцы «Исполняемый файл«, «32-разрядный» и «64-разрядный» подскажут вам, какую архитектуру вам следует выбрать.
    Информация об игровом API PCGamingWiki

Как добавить DXVK в ваши игры

Теперь, когда вы знаете, какую версию Direct3D и архитектуру процессора использует ваша игра, вы можете добавить правильную версию DXVK в ее папку.

  1. Откройте архив DXVK с помощью вашего любимого менеджера архивов (в этой статье мы используем WinRAR) и введите единственную папку DXVK, которую вы увидите там.
    Папка DXVK в архиве 1
  2. Внутри вы найдете две вложенные папки, по одной для каждой архитектуры компьютера. Введите правильную папку для вашей игры. Даже если ваша ОС 64-разрядная, как и большинство современных версий Windows, если ваша игра 32-разрядная, вам следует выбрать папку 32-bit.
    32-разрядные и 64-разрядные папки DXVK в архиве
  3. Выберите DXGI.DLL плюс правильную библиотеку DLL для версии Direct3D, используемой вашей игрой. Как вы увидите, существуют еще три библиотеки DLL, по одной для каждой из предыдущих версий Direct3D: 9, 10 и 11.
    Библиотеки DLL DXVK в архиве
  4. Найдите локальную папку, в которой установлена ваша игра, и найдите подпапку с ее исполняемым файлом («файл, из которого запускается игра»). Извлеките библиотеки DLL из предыдущего шага в эту папку.
    Извлечение библиотек DLL DXVK в каталог игры

Как протестировать и сравнить вашу улучшенную игру

Если вы запустите свою игру сейчас, она должна использовать Vulkan вместо Direct3D и, надеюсь, работать лучше.

Даже если вы не видите каких-либо существенных изменений в частоте кадров, иногда улучшения можно «почувствовать» другими способами. Например, мы попробовали DXVK с классической Batman: Arkham City на ПК, оснащенном Ryzen 5900x, 64 ГБ оперативной памяти и графическим процессором Nvidia RTX 3070. Наше оборудование уже превосходило лучшие характеристики этой старой игры, достигая очень высокой частоты кадров. Даже если бы они стали выше с Vulkan, разницу было бы нелегко ощутить.

Arkham-City-Мгновенные-Переходы

Однако действие игры стало более плавным. Переходы между экранами, уровни загрузки и нажатие Alt + Tab в DXVK были практически мгновенными.

Когда вы не должны использовать DXVK

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

1. DXVK не улучшает производительность игры

Если вы добавили библиотеки DLL 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. Добавляйте их в любую игру, в которой вы хотели бы устранить сбои, повысить ее производительность, добиться более плавного игрового процесса и улучшить его отзывчивость.

Даже если в конечном итоге это не поможет, опробование займет всего несколько секунд, и чаще всего вы можете быть удивлены результатами.