几十年来 , Direct3D 一直是 Windows 游戏的一部分 , 将分散的 PC 硬件景观统一在一个支持 3D 的保护伞下 。然而 , 主要为 Linux 创建的应用程序 DXVK 有时是更好的选择 , 即使您使用的是 Windows 。
您想要更好的兼容性 , 更重要的是 , 您的应用程序和游戏的性能吗?那么您需要尝试一下 DXVK 。

文章插图
Windows 上 DirectX 的问题
Microsoft 创建 DirectX 作为“统一解决方案” , 帮助程序员使用任何 PC 的硬件功能 。软件开发人员可以“瞄准”DirectX 的 DirectDraw(2D 图形)、Direct3D(硬件加速 3D)和 DirectSound(音频)库 , 而不是为每个硬件部分编写不同的代码 。然后 , 让微软的解决方案将他们的代码“翻译”为每个硬件部分的“母语” 。
DirectX 成为 Windows 中不可替代的核心技术 , 并从此不断发展 。然而 , Direct3D 有一个小问题:它不是 100% 向后兼容 。
Microsoft 和支持 Direct3D API 的 GPU 的创建者(如“Nvidia、AMD 和 Intel”)偶尔会放弃对 Direct3D 过去版本中引入的功能的支持 , 但这些功能从未获得关注 。因此 , 一些较旧的游戏可能无法在具有最新版本 Direct3D 的现代 GPU 上正确运行 。
什么是 Vulkan?
OpenGL 被认为是对 Microsoft 闭源 Direct3D 的更“开放”的回应 , 它是 Silicon Graphics 图形工作站中使用的 3D 图形库的变异版本 。
然而 , 与微软的 Direct3D 相比 , OpenGL 在功能方面始终落后 。最终 , 重新启动这项工作似乎更为理性 。这就是创建 Vulkan(也称为“OpenGL Next”)的原因 , 它提供了更好的性能并增强了对硬件的控制 。
与 OpenGL 一样 , 与 Microsoft 的 Windows 绑定的 Direct3D 不同 , Vulkan 是“开放的”和跨平台的 。您可以在 Windows、Linux 甚至智能手机上使用 Vulkan 。虽然 Mac 本身不支持 , 但可以通过 MoltenVK 在 Mac 上使用 。
那是简短的版本 。要了解有关 Vulkan 的更多信息 , 请查看我们有关Windows 中的 Vulkan 运行时库的文章 。
什么是 DXVK?
DXVK 是一个包装器 , 将 Direct3D“翻译”为 Vulkan 。在人类世界中 , 翻译可以成为英语和日语使用者之间的调解人 , 使他们能够相互理解 。类似地 , “包装器”或“转换层”可以“获取”为特定硬件、平台或 API 编写的代码 , 并将其转换为在另一个硬件、平台或 API 上运行 。
DXVK 最初是在 Valve 的支持下针对 Linux 开发的 , Valve 也在 SteamOS 和 Steam Deck 上使用了它 。您可以在我们的文章中了解更多相关信息 , 其中我们了解了Steam Proton 以及它如何在 Steam Deck 上运行 Windows 游戏 。
为什么要在 Windows 上使用 DXVK?
如果游戏已经在您的硬件上运行良好 , 则没有理由使用 DXVK 。但一些为旧版本 DirectX 编写的游戏在新版本 DirectX 和现代硬件上无法“正确”(如果有的话)运行 。
通过将旧且有缺陷的 Direct3D 代码“翻译”为更现代的 Vulkan API , 对性能的影响最小(如果有的话) 。与此同时 , 图形损坏或功能缺失的有问题的游戏可能会再次完全可以玩 。
由于 Vulkan 与 Direct3D 12 相当 , 并且两者都比旧版本的 Direct3D 更好(更快)(正如我们在比较DirectX 11 与 DirectX 12时看到的那样) , 因此将旧的 Direct3D 游戏“翻译”为 Vulkan 有时可以提高游戏的性能表现 。
英特尔在 Arc GPU 上的工作证明了这一点 。英特尔可以尝试在 Arc GPU 驱动程序中添加对每个旧游戏的支持 。相反 , 英特尔决定进一步改进 DXVK 。英特尔“实验”的初步结果使旧游戏的性能提高了 2 倍 , 其中数十款游戏可以“通过”DXVK 进行播放 。
如何在 Windows 上使用 DXVK
在 Windows 上使用 DXVK 非常简单 , 因为无需调整或配置 。您只需下载它 , 将其解压到游戏的正确文件夹中 , 就可以开始使用了 。
但是 , 您必须使用与您的游戏所使用的 Direct3D 版本相匹配的正确 DXVK 版本 。
如果我们一起完成整个过程 , 了解如何下载最新版本的 DXVK、识别游戏的“技术”以及在正确的文件夹中安装正确的 DLL , 可能会更容易 。
如何下载 DXVK
DXVK 是开源软件 , 可以免费使用 。您可以在 GitHub 上找到其最新版本 。
- 访问 DXVK 的官方 GitHub 页面 , 然后单击页面右侧Releases下的最新版本链接 。
- 在发布页面上向下滚动并找到最新版本的资产部分 。单击最新的 DXVK tar.gz 存档进行下载 。在撰写本文时 , 版本为 2.2 。
- 将下载的存档存储在某处 , 因为您需要将其内容解压到您想要使用 DXVK 而不是 Direct3D 运行的每个游戏的文件夹中 。
如果您需要知道您的游戏使用的是哪个版本的 Direct3D , PC Gaming Wiki 网站可以提供帮助 。
- 使用浏览器访问PC Gaming Wiki , 然后使用右上角的搜索字段查找您要添加 DXVK 的游戏 。
- 当您找到您的游戏时 , 请访问其页面并向下滚动以到达“其他信息”部分 。将您的注意力转向 API 表 。在“技术规格”和“支持”列中 , 您将看到您的游戏正在使用的 Direct3D 版本 。下面的Executable、32-bit和64-bit列将“告诉”您应该选择哪种架构 。
现在您知道您的游戏使用哪个 Direct3D 版本和 CPU 架构 , 您可以将正确版本的 DXVK 添加到其文件夹中 。
- 使用您最喜欢的存档管理器打开 DXVK 存档(在本文中 , 我们使用 WinRAR) , 然后输入您将在其中看到的单个 DXVK 文件夹 。
- 在里面 , 您会发现两个子文件夹 , 每个子文件夹对应一种计算机体系结构 。输入适合您的游戏的正确选项 。即使您的操作系统是 64 位(就像当今大多数版本的 Windows 一样) , 如果您的游戏是 32 位 , 您也应该选择 32 位文件夹 。
- 选择DXGI.DLL以及适合您的游戏所使用的Direct3D版本的正确 DLL。正如您将看到的 , 还有三个 DLL , 分别对应 Direct3D 的早期版本:9、10 和 11 。
- 找到安装游戏的本地文件夹 , 然后找到包含可执行文件的子文件夹(“游戏运行的文件”) 。将上一步中的 DLL 提取到此文件夹 。
如果您现在运行游戏 , 它应该使用 Vulkan 而不是 Direct3D , 并且有望表现更好 。
即使您没有看到帧速率有任何显着变化 , 有时也可以通过其他方式“感受到”这些改进 。例如 , 我们在配备 Ryzen 5900x、64GB RAM 和 Nvidia RTX 3070 GPU 的 PC 上尝试使用经典《蝙蝠侠:阿卡姆之城》进行 DXVK 。我们的硬件已经超过了这款老游戏的最高规格 , 实现了非常高的帧速率 。即使他们使用 Vulkan 获得了更高的成绩 , 但差异也不容易被察觉 。
然而 , 游戏的动作感觉更流畅 。使用 DXVK , 屏幕之间的转换、加载级别以及按 Alt + Tab 几乎是即时的 。
何时不应使用 DXVK
DXVK 有很多好处 , 可以将旧游戏的性能带入现代 。尽管如此 , 它并不是提高性能的灵丹妙药 , 有时甚至不值得使用它 。
1. DXVK 不会提高游戏性能
如果您已将 DXVK DLL 添加到游戏中 , 但之后没有发现任何差异 , 如果您愿意 , 可以再次删除它们 。为此 , 您可以删除已添加到游戏文件夹中的 DLL 。
2. DXVK 导致性能更差或引入新的故障
有时将 DXVK 添加到游戏中可能会产生相反的效果 。不幸的是 , 最终用户无法解决此类问题 。
添加 DXVK 后是否出现游戏性能下降或视觉问题?退出游戏并从其目录中删除 DXVK 的 DLL 。
3.您想在线玩游戏
DXVK 是一个兼容层 , 仅影响游戏的图形输出 。尽管如此 , 一些公司仍然反对对其游戏进行任何修改 , 以确保每个人都有一个公平的环境 。
DXVK 可能不是“作弊” , 但它仍然是“游戏修改” , 并且可能会被标记为“作弊” 。
4.游戏已经内置了Vulkan支持
如果游戏已经使用 Vulkan API(例如《毁灭战士:永恒》) , 则没有理由将其输出设置为 Direct3D , 然后将其转换为 Vulkan 。
5.游戏使用Direct3D 12
由于 Direct3D 12 几乎完全与 Vulkan 相当 , 因此将一种超现代图形 API 转换为另一种超现代图形 API 没有任何好处 。
在 Windows 上通过“翻译”3D 增强您的旧游戏
最初是作为在 Linux 上玩更多 Windows 游戏的一种方式 , 最终成为一种有用的兼容性解决方案和性能增强器 。因此 , 请将 DXVK DLL 的最新存档放在手边 。将它们添加到您想要消除故障、提高性能、获得更流畅的游戏动作并提高响应能力的任何游戏中 。
【如何使用Windows版DXVK增强旧版DirectX游戏】即使它最终没有帮助 , 尝试一下也只需要几秒钟 , 而且通常情况下 , 你可能会对结果感到惊讶 。
- 如何检查电脑的功耗,4种测量方法
- 如何在Windows上安装Intel网络驱动程序
- 如何修复Windows上Wlanext.exe的高CPU使用率
- 如何在Windows10中备份便签?3种方法
- 如何修复Win11上的“ms-resource:Appname/Text”错误
- Windows电脑时间服务未运行6种修复方法
- 无法在Windows上将帐户设置为管理员?这是修复方法
- 如何修复Win上Rust中的“Steam Auth Timeout”错误
- 如何修复Windows上Dropbox的高CPU使用率