Переводной слой на основе Вулкана для Direct3D 10/11, который позволяет запускать 3D-приложения на Linux с помощью вина.
Для текущего статуса проекта, пожалуйста, обратитесь к проекту Wiki.
Чтобы установить пакет DXVK, полученный со страницы выпуска в заданный префикс вина, запустите следующие команды из каталога DXVK:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
Это скопирует DLLS в каталогах system32 и syswow64 вашего префикса вина и настраивает необходимые переопределения DLL. Чистые 32-битные префиксы также поддерживаются.
Скрипт настройки при желании принимает следующие аргументы:
--symlink : Создайте символические ссылки на файлы DLL вместо копирования их. Это особенно полезно для разработки.--without-dxgi : не устанавливайте внедрение DXVK DXGI и вместо этого используйте ту, которая предоставлена вином. Это необходимо для того, чтобы как VKD3D, так и DXVK работал в рамках одного и того же префикса вина. Убедитесь, что ваше приложение использует dxvk вместо Wined3d, проверив наличие файла журнала d3d11.log в каталоге приложения или, включив HUD (см. Примечания ниже).
Чтобы удалить DXVK из префикса, запустите следующую команду:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
Внутри каталога DXVK запустите:
./package-release.sh master /your/target/directory --no-package
Это создаст папку dxvk-master в /your/target/directory , которая содержит как 32-битные, так и 64-битные версии DXVK, которые могут быть настроены так же, как и версии релизов, как указано выше.
Чтобы сохранить каталоги строительства для разработки, пройти --dev-build сценарию. Этот вариант подразумевает --no-package . После внесения изменений в исходный код вы можете сделать следующее, чтобы восстановить DXVK:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
Сборка Winelib может быть создана, добавив аргумент --winelib .
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
meson --cross-file build-win64.txt --buildtype release --prefix /your/dxvk/directory build.w64
cd build.w64
ninja install
DLL DLLS D3D10, D3D11 и DXGI будут расположены в /your/dxvk/directory/bin . Настройка должна быть выполнена вручную в этом случае.
Перед отчетностью о проблеме, пожалуйста, проверьте страницу вики в текущем статусе драйвера и убедитесь, что вы запустили достаточно недавнюю версию драйвера для вашего оборудования.
Манипулирование библиотеками Direct3D в многопользовательских играх может считаться обманом и может забрать вашу учетную запись . Это также может относиться к однопользовательным играм с встроенной или выделенной многопользовательской частью. Используйте свой собственный риск.
Переменная среда DXVK_HUD управляет HUD, который может отображать кадров и некоторые счетчики статистики. Он принимает список следующих вариантов, разделяемый запятыми:
devinfo : отображает имя GPU и версию драйвера.fps : показывает текущую частоту кадров.frametimes : показывает график времени кадров.submissions : показывает количество командных буферов, представленных на кадре.drawcalls : показывает количество вызовов рисования и рендеринговых проходов на кадр.pipelines : показывает общее количество графики и вычислительных трубопроводов.memory : показывает количество памяти устройства, выделенной и используемой.gpuload : показывает расчетную нагрузку GPU. Может быть неточным.version : показывает версию DXVK.api : показывает уровень функций D3D, используемый приложением. В данный момент работает неправильно для D3D10.compiler : показывает активность компилятора шейдера Кроме того, DXVK_HUD=1 имеет тот же эффект, что и DXVK_HUD=devinfo,fps и DXVK_HUD=full позволяет все доступные элементы HUD.
Некоторые приложения не предоставляют метод выбора другого графического процессора. В этом случае DXVK может быть вынужден использовать данное устройство:
DXVK_FILTER_DEVICE_NAME="Device Name" выбирает устройства с соответствующим именем устройства Vulkan, которые можно получить с помощью таких инструментов, как vulkaninfo . Соответствует подстройкам, поэтому «Vega» или «AMD Radv Vega10» поддерживается, если, например, имя полного устройства «Amd Radv Vega10 (LLVM 9.0.0)». Если подстроение соответствует более одного устройства, будет использоваться первое устройство.Примечание. Если фильтр устройства настроен неправильно, он может отфильтровать все устройства, и приложения не смогут создать устройство D3D.
DXVK CACHES CACHES COMILE SATEL по умолчанию, так что шейдеры могут быть перекомпилированы заранее при последующих запусках приложения, даже если в это время был признан недействительным. Этот кэш включен по умолчанию и, как правило, уменьшает заикание.
Следующие переменные среды могут использоваться для управления кэшем:
DXVK_STATE_CACHE=0 Отключает кеш состояния.DXVK_STATE_CACHE_PATH=/some/directory Указывает каталог, где размещать файлы кэша. По умолчанию текущий рабочий каталог приложения.Следующие переменные среды могут использоваться для отладки .
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation позволяет Vulkan Debug Layers. Настоятельно рекомендуется для устранения неисправностей проблем рендеринга и сбоев драйверов. Требуется, чтобы вулкан SDK был установлен в хост -системе.DXVK_LOG_LEVEL=none|error|warn|info|debug CONSTORGSERSERSERSE MORGING.DXVK_LOG_PATH=/some/directory изменяют путь, где хранятся файлы журнала.DXVK_CONFIG_FILE=/xxx/dxvk.conf устанавливает путь к файлу конфигурации. DXVK требует поддержки потоков из вашей среды построения Mingw-W64. Если вы упускаете это, вы можете увидеть «ошибку:« mutex »не является членом« STD »». На Debian и Ubuntu это обычно можно решить с помощью Posix Alternate, которая поддерживает потоки. Например, выберите Alternate Posix из этих команд (используйте i686 для 32-битных):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++