DXVK можно использовать для запуска 3D-приложений и игр в Linux с помощью Wine.
Запуск новая версия DXVK 2.0, реализация DXGI Direct3D 9, 10 и 11, работающая посредством перевода вызовов Vulkan API. DXVK требует совместимых драйверов.
В этой новой версии повышенные требования к версии графического API Vulkan- Теперь требуется драйвер с поддержкой Vulkan 1.3 (ранее требовался Vulkan 1.1), что позволило реализовать поддержку новых возможностей, связанных с компиляцией шейдеров.
На практике, DXVK 2.0 можно запустить в любой системе, поддерживающей использование экспериментального пакета Proton. для запуска игр на базе D3D11 и D3D12. Для работы Winevulkan требуется как минимум Wine 7.1.
Взял код из проекта dxvk-native, который позволяет генерировать нативные DXVK-сборки для Linux (не привязанные к Wine), которые можно использовать для запуска не Windows-приложений, а обычных Linux-приложений, что может быть полезно для создания портов Linux-игр без изменения кода рендеринга на основе D3D.
Это было расширенная поддержка Direct3D 9, в том числе улучшено управление памятью (для хранения копий текстур используются зеркалированные файлы памяти), реализована поддержка корректного чтения хотспотов (решены проблемы с появлением артефактов при игре в GTA IV) и переработана реализация управления прозрачностью.
Для Direct3D 10 библиотеки d3d10.dll и d3d10_1.dll больше не выпускаются., которые по умолчанию не устанавливались из-за наличия в Wine более продвинутой реализации D3D10. При этом поддержка D3D10 API продолжается в библиотеке d3d10core.dll.
Поддержка Direct3D 11 обновлена до функционального уровня 12_1. ( D3D11 Feaure Level ), для реализации таких функций, как мозаичные ресурсы ( Tiled Resources ), консервативная растеризация ( Conservative Rasterization ) и упорядоченный рендеринг в растеризаторе ( Rasterizer Ordered Views ).
Реализация интерфейса ID3D11DeviceContext, который представляет контекст устройства, генерирующего команды рисования, была переработана и ведет себя более близко к Windows. Редизайн позволил улучшить совместимость со сторонними библиотеками и снизить нагрузку на ЦП. В частности, было уменьшено использование ЦП в играх, которые активно используют ленивый контекст (например, Assassin's Creed: Origins) или часто вызывают операцию ClearState (например, God of War).
Было реализовано изменения, связанные с компиляцией шейдеров. При наличии драйверов Vulkan с поддержкой расширения VK_EXT_graphics_pipeline_library шейдеры Vulkan компилировались, когда игры загружали шейдеры D3D, а не во время рендеринга, что решало проблемы с зависаниями из-за компиляции шейдеров во время игры.
Из других изменений, которые выделяются:
- В настоящее время необходимое расширение поддерживает только проприетарные драйверы NVIDIA, начиная с версии 520.56.06.
- Шейдеры D3D11 используют модель памяти Vulkan.
- Убрано ограничение на количество ресурсов, которые можно подключить одновременно.
В конце концов если вам интересно узнать об этом больше Об этом новом выпуске вы можете узнать подробности По следующей ссылке.
Как добавить поддержку DXVK в Linux?
DXVK можно использовать для запуска 3D-приложений и игр в Linux с помощью Wine, выступая в качестве более производительной альтернативы встроенной в Wine реализации Direct3D 11, работающей на OpenGL.
DXVK требует последней стабильной версии Wine бежать. Итак, если у вас это не установлено. Теперь нам нужно только загрузить последний стабильный пакет DXVK, который мы нашли. По следующей ссылке.
wget https://github.com/doitsujin/dxvk/releases/download/v1.10.2/dxvk-1.10.2.tar.gz
После загрузки мы собираемся распаковать только что полученный пакет, это можно сделать из среды рабочего стола или из самого терминала, выполнив следующую команду:
tar -xzvf dxvk-2.0.tar.gz
Затем мы получаем доступ к папке с:
cd dxvk-2.0
И выполняем команду sh, чтобы запускаем установочный скрипт:
sudo sh setup-dxvk.sh install
setup-dxvk.sh install --without-dxgi
При установке DXVK в приставку Wine. Преимущество заключается в том, что Wine vkd3d можно использовать для игр D3D12 и DXVK для игр D3D11.
Кроме того, новый сценарий позволяет устанавливать dll в виде символических ссылок, что упрощает обновление DXVK для получения дополнительных префиксов Wine (это можно сделать с помощью команды –symlink).
Каким вы будете видеть папку DXVK содержит две другие dll для 32 и 64 бит эти мы собираемся разместить их по следующим маршрутам.
Где "пользователь" вы замените его именем пользователя, которое вы используете в своем дистрибутиве Linux.
Для 64 бит вставляем их:
~/.wine/drive_c/windows/system32/
O
/home/”usuario”/.wine/drive_c/windows/system32/
И для 32 бит в:
~/.wine/drive_c/windows/syswow64
O
/home/”usuario”/.wine/drive_c/windows/system32/
Будьте первым, чтобы комментировать