Direct3d 10/11的基于Vulkan的翻译层,允许使用Wine在Linux上运行3D应用程序。
有关该项目的当前状态,请参阅项目Wiki。
为了将从发行页获得的DXVK软件包安装到给定的葡萄酒前缀中,请从DXVK目录中运行以下命令:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh install
这将将DLL复制到您的葡萄酒前缀的system32和syswow64目录中,并设置所需的DLL覆盖。还支持纯32位前缀。
设置脚本(可选)获取以下参数:
--symlink :创建指向DLL文件的符号链接,而不是复制它们。这对于开发特别有用。--without-dxgi :请勿安装DXVK的DXGI实现,而是使用葡萄酒提供的实现。 VKD3D和DXVK在同一葡萄酒前缀中工作都是必要的。通过检查应用程序目录中的日志文件d3d11.log的存在或通过启用HUD(请参见下面的注释),请验证您的应用程序是否使用DXVK而不是Wined3D。
为了从前缀中删除DXVK,请运行以下命令:
export WINEPREFIX=/path/to/.wine-prefix
./setup_dxvk.sh uninstall
在DXVK目录中,运行:
./package-release.sh master /your/target/directory --no-package
这将在/your/target/directory中创建一个文件夹dxvk-master ,其中包含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
D3D10,D3D11和DXGI DLL将位于/your/dxvk/directory/bin中。在这种情况下,必须手动完成设置。
在报告问题之前,请查看当前驱动程序状态的Wiki页面,并确保您运行了最新的驱动程序版本以适合硬件。
在多游戏游戏中对Direct3D库的操纵可能被视为作弊,并且可以禁止您的帐户。这也可能适用于具有嵌入式或专用多人游戏部分的单人游戏。自行使用。
DXVK_HUD环境变量控制一个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元素的效果相同。
某些应用程序不提供选择其他GPU的方法。在这种情况下,DXVK可以被迫使用给定的设备:
DXVK_FILTER_DEVICE_NAME="Device Name"选择具有匹配Vulkan设备名称的设备,可以使用vulkaninfo等工具检索。例如,如果完整的设备名称为“ AMD RADV VEGA10(LLVM 9.0.0)”,则支持在子字符串上匹配,因此“ VEGA”或“ AMD RADV VEGA10”。如果子字符串匹配多个设备,则将使用第一个设备。注意:如果设备过滤器的配置不正确,则可能会过滤所有设备,并且应用程序将无法创建D3D设备。
默认情况下,DXVK缓存管道状态,以便在随后的应用程序运行中可以提前重新编译着着色器,即使同时驾驶员自己的着色器缓存无效。默认情况下启用此缓存,通常会减少口吃。
以下环境变量可用于控制缓存:
DXVK_STATE_CACHE=0禁用状态缓存。DXVK_STATE_CACHE_PATH=/some/directory指定一个目录在哪里放置缓存文件。默认为应用程序的当前工作目录。以下环境变量可用于调试目的。
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation启用Vulkan调试层。强烈建议将渲染问题和驾驶员崩溃进行故障排除。需要在主机系统上安装Vulkan SDK。DXVK_LOG_LEVEL=none|error|warn|info|debug控件消息记录。DXVK_LOG_PATH=/some/directory更改存储日志文件的路径。DXVK_CONFIG_FILE=/xxx/dxvk.conf将路径设置为配置文件。 DXVK需要MINGW-W64构建环境的线程支持。如果您缺少这一点,则可能会看到“错误:'Mutex'不是'std'的成员”。在Debian和Ubuntu上,通常可以使用支持线程的Posix备用替代方案来解决这一问题。例如,从这些命令中选择POSIX备用(将i686用于32位):
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++