DXVK – это набор dll файлов замены, которые переводят из DirectX 11 в Vulkan.
Поскольку код DX11 переносится в Vulkan, DXVK напрямую решает самую большую проблему современных игр Wine – несовместимость с новыми формами DirectX. Большинство игр уходят как можно дальше от DirextX 9 и в процессе нарушают сопоставимость Wine. DXVK имеет очень реальный потенциал в качестве решения.
Как установить Vulkan в Linux
Прежде чем вы сможете использовать DXVK, вам нужна поддержка Vulkan. Это могут быть разные вещи, в зависимости от вашей видеокарты и драйверов, но есть некоторые универсальные, которые можно установить в первую очередь.
sudo apt install libvulkan1 libvulkan-dev vulkan-utils
Установить Mesa в Linux
Если вы используете Mesa, вместе с AMD или Intel, это очень хорошая идея. Вы можете получить последнюю версию Mesa из PPA-репозитория, который постоянно обновляет Mesa из Git для Ubuntu.
Откройте терминал, и введите следующие команды
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
Теперь установите драйвер Mesa Vulkan.
sudo apt установить mesa-vulkan-drivers
Рекомендуется перезагрузить компьютер, чтобы изменения вступили в силу.
Lutris
В прошлой статье, я уже писал о такой замечательной программе как Lutris. В ней, вы можете абсолютно без проблем запускать игры с DXVK, ведь он уже поставляется по умолчанию. Попробуйте запустить Lutris, а не разбираться с независимыми конфигурациями Wine самостоятельно. DXVK работает на основе префиксов, поэтому разделение, которое приносит Lutris, делает его намного лучше для такого рода вещей. Если вам нужна помощь в установке и настройке Lutris, ознакомьтесь с моим руководством по Lutris.
Установка DXVK в Linux
Перейдите на страницу релиза проекта и загрузите последнюю версию tarball. Распакуйте архив в любое удобное место.
Откройте терминал, и выполните следующие команды из каталога DXVK:
export WINEPREFIX=/путь/к/.wine
./setup_dxvk.sh install
Это скопирует библиотеки DLL в каталоги system32 и syswow64 вашего префикса wine и настроит необходимые переопределения DLL. Чистые 32-битные префиксы также поддерживаются.
Сценарий установки также необязательно принимает следующие аргументы:
–symlink: Создавать символические ссылки на файлы DLL вместо их копирования. Это особенно полезно для развития.
–with-d3d10: Установить d3d10{_1}.dll вспомогательные библиотеки.
–without-dxgi: Не устанавливайте реализацию DXVI в DXVK и используйте вместо нее ту, которая предоставляется wine. Это необходимо, чтобы vkd3d и DXVK работали в одном и том же префиксе wine.
Убедитесь, что ваше приложение использует DXVK вместо wined3d, проверив наличие файла журнала d3d9.log или d3d11.log в каталоге приложения, или включив HUD.
DXVK_HUD – Переменная среды управляет HUD, который может отображать частоту кадров и некоторые счетчики. Он принимает разделенный запятыми список следующих опций:
- devinfo: Отображает имя графического процессора и версию драйвера.
- fps: Показывает текущую частоту кадров.
- frametimes: Показывает график времени кадра.
- submissions: Показывает количество командных буферов, отправленных на кадр.
- drawcalls: Показывает количество вызовов отрисовки и отрисовки проходов за кадр.
- pipelines: Показывает общее количество графических и вычислительных конвейеров.
- memory: Показывает объем памяти устройства, выделенной и использованной.
- gpuload: Показывает приблизительную загрузку графического процессора. Может быть неточным.
- version: Показывает версию DXVK.
- api: Показывает уровень функций D3D, используемый приложением.
- compiler: Показывает активность шейдерного компилятора
- samplers: Показывает текущее количество используемых пар сэмплеров [Только D3D9]
То есть чтобы включить показ fps на вашем экране в игре, можно ввести такую команду
DXVK_HUD=fps wine /путь к файлу exe игры/
Или включить все
DXVK_HUD=full wine /путь к файлу exe игры/
Например, команда которую я ввел чтобы играть выглядит вот так
DXVK_HUD=full wine '/home/fox/.wine/drive_c/Games/Battlefield 1/bf1.exe'
Чтобы удалить DXVK из префикса, выполните следующую команду:
export WINEPREFIX=/путь/к/.wine
./setup_dxvk.sh uninstall
Вот и все. Надеюсь статья была полезной, и если это так, не забудьте поделиться в социальных сетях.