下载

首先可以查看一下显卡是否支持VulkanAPI,主要看Devices那一块

$ vulkaninfo --summary 
......
Devices:
========
GPU0:
        apiVersion         = 1.2.305 #支持的VulkanAPI版本
        driverVersion      = 25.0.7
......

由于我的显卡比较老旧,只支持Vulkan1.2,所以DXVK版本应该选择1.X(Vulkan1.3应选择2.X)
最终选择了1.10.3
使用Wget命令下载:

$ wget https://gh-proxy.org/https://github.com/doitsujin/dxvk/releases/download/v1.10.3/dxvk-1.10.3.tar.gz

下载完成后解压

$ tar -zxvf dxvk-1.10.3.tar.gz

安装

解压完成后进入dxvk-1.10.3目录下可以发现有x32x64两个版本
我们需要将它们拷贝到syswow64system32

$ cp x32/* ~/.wine/drive_c/windows/syswow64/
$ cp x64/* ~/.wine/drive_c/windows/system32/

~/.wine是默认的wineprefix路径,如果你修改过,请替换为你的wineprefix路径

配置注册表

放入DLL后还需要配置注册表来让Wine优先使用这些DLL(不使用内置WineD3D)
可以使用for循环快速创建:

for dll in d3d9 d3d10 d3d10_1 d3d10core d3d11 dxgi; do
  wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v $dll /t REG_SZ /d native,builtin /f
done

也可以手动创建:

$ wine regedit

导航到 HKEY_CURRENT_USER\Software\Wine\DllOverrides
右键新建字符串值,分别命名为上述DLL名称(d3d9d3d10d3d10_1d3d10cored3d11),数值数据设为 native,builtin
完成示例:
图片.png

至此安装完成

测试

使用以下命令运行游戏:

$ DXVK_HUD=1 wine yourgame.exe

如果左上角出现
图片.png即成功使用DXVK转译游戏
如果没有或报错崩溃请检查

  • 设备是否支持VulkanAPI?
  • 游戏本身是否兼容DXVK?
  • DXVK DLL是否安装有误?

如何回退到WineD3D

终端输入

$ winecfg

在打开的窗口中选择——函数库
将所有d3d dll修改(编辑)为内建先于原装
示例:
图片.png
然后单击应用
再次运行DXVK_HUD=1 wine yourgame.exe如果左上角HUD窗口消失,即成功回退到WineD3D
WineD3D回退到DXVK反着来就好了:将d3d dll修改为原装先于内建

常见问题

Q:使用Wine转译游戏时按Alt+Tab切换窗口后切回游戏卡住怎么办?
A:添加注册表项:wine reg add 'HKEY_CURRENT_USER\Software\Wine\X11 Driver' /t REG_SZ /v UseTakeFocus /d N /f