分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

doitsujin/dxvk

游戏

把 Direct3D 8/9/10/11 调用翻译成 Vulkan,让 Linux 上的 Wine 能运行 3D 游戏与应用。

18,412
1,330
C++
Zlib
创建于 9 年前

项目作用

DXVK 把 Direct3D 8、9、10、11 的调用翻译成 Vulkan,使 3D 应用可以通过 Wine 在 Linux 上运行,替代 Wine 原本基于 OpenGL 的 D3D 实现。项目当前状态见项目 wiki。同一份代码还能构建 DXVK Native,它不依赖 Wine,面向游戏或应用的 Linux 移植以及移植初期的开发调试;使用时必须通过 DXVK_WSI_DRIVER 显式指定 SDL3、SDL2 或 GLFW 之一作为窗口后端(source:36)。

安装到 Wine 前缀

从发布页下载安装包,把对应 DLL 复制进 Wine 前缀,然后在 winecfg 的 Libraries 标签中为 d3d8、d3d9、d3d10core、d3d11 和 dxgi 添加 native 覆盖(source:7)。默认前缀的操作如下:

export WINEPREFIX=/path/to/wineprefix
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
winecfg

纯 32 位前缀则把 x32/*.dll 复制到 system32(source:9)。按所用 API 只需其中部分 DLL:d3d8 需要 d3d8.dll 和 d3d9.dll;d3d9 需要 d3d9.dll;d3d10 需要 d3d10core.dll、d3d11.dll 和 dxgi.dll;d3d11 需要 d3d11.dll 和 dxgi.dll(source:10)。启用 HUD(如 DXVK_HUD=devinfo,fps)可确认程序确实在用 DXVK 而非 wined3d(source:14)。Steam Play、Lutris、Bottles、Heroic 等工具在启用相应选项后会自动完成配置(source:7)。

卸载与自行构建

卸载 DXVK 时删除复制进去的 DLL 和 DLL 覆盖,再运行 wineboot -u 恢复原始 DLL(source:7)。从源码构建需要 Wine 10.0 或更新版本、Meson 0.58 及以上、Mingw-w64 10.0 及以上以及 glslang(source:22);用 git clone --recursive 拉取子模块后,执行 ./package-release.sh master /your/target/directory --no-package 会在目标目录生成 dxvk-master,其中包含 32 位和 64 位构建(source:28)。

使用限制

需要与硬件匹配且足够新的 Vulkan 驱动,驱动支持情况见驱动支持 wiki。在多人在线游戏中修改 Direct3D 库可能被视为作弊并导致账号被封,部分带联机内容的单机游戏同样适用(source:13)。在支持 VK_EXT_graphics_pipeline_library 的驱动上,着色器会在游戏加载时一次性编译,而非绘制时编译,加载画面期间可能出现长时间高 CPU 占用;可用 DXVK_HUD=compiler 观察编译进度(source:18)。只在绘制时加载着色器的游戏(例如多数 Unreal Engine 游戏)仍可能有卡顿(source:18)。在 Windows 上,日志文件默认写入游戏工作目录(source:15)。

HotRepo 点评

在 HotRepo 的 C++ 日榜记录中,DXVK 于 2026 年 11 月 2 日新增 9 star,当日最好名次为第 10。它在 Hacker News 上的讨论可追溯到 2018 年 1 月的一条 216 分帖子,评论者当时讨论这套方案能否也用于 Windows,并把它看作 Wine 中 D3D11 转 OpenGL 路径的替代品(source:38),另一条讨论则点出了联机游戏被封号的风险(source:43)。之后的条目分别标记 2.0 发布和加入 DX8 支持的 2.4 发布。2018 年的大讨论与 2022、2024 年发布帖的少量关注形成对比,说明项目已进入成熟阶段,重要版本更新不再引发大规模讨论。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Dvxk: A Vulkan-Based D3D11 Implementation for Linux with Wine
▲ 216 · 51 条评论 · 2018年1月21日
DXVK 2.0 released
▲ 4 · 0 条评论 · 2022年11月11日
DXVK 2.4 with DX8 support added
▲ 2 · 0 条评论 · 2024年7月11日