为什么要在Windows上使用DXVK

为什么要在Windows上使用DXVK

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

您想要更好的兼容性,更重要的是,您的应用程序和游戏的性能吗?那么您需要尝试一下 DXVK。

推荐:如何在Amazon Linux 2023上安装Nextcloud

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 上找到其最新版本。

  1. 访问 DXVK 的官方 GitHub 页面,然后单击页面右侧Releases下的最新版本链接。
  2. 在发布页面上向下滚动并找到最新版本的资产部分。单击最新的 DXVK tar.gz 存档进行下载。在撰写本文时,版本为 2.2。
    DXVK 最新发布资产
  • 将下载的存档存储在某处,因为您需要将其内容解压到您想要使用 DXVK 而不是 Direct3D 运行的每个游戏的文件夹中。

如何选择正确的 DXVK 版本

如果您需要知道您的游戏使用的是哪个版本的 Direct3D,PC Gaming Wiki 网站可以提供帮助。

  1. 使用浏览器访问 PC Gaming Wiki,然后使用右上角的搜索字段查找您要添加 DXVK 的游戏。
  2. 当您找到您的游戏时,请访问其页面并向下滚动以到达“其他信息”部分。将您的注意力转向 API 表。在“技术规格”“支持”列中,您将看到您的游戏正在使用的 Direct3D 版本。下面的Executable32-bit64-bit列将“告诉”您应该选择哪种架构。
    PCGamingWiki 游戏 API 信息

如何将 DXVK 添加到您的游戏中

现在您知道您的游戏使用哪个 Direct3D 版本和 CPU 架构,您可以将正确版本的 DXVK 添加到其文件夹中。

  1. 使用您最喜欢的存档管理器打开 DXVK 存档(在本文中,我们使用 WinRAR),然后输入您将在其中看到的单个 DXVK 文件夹。
    存档 1 内的 DXVK 文件夹
  2. 在里面,您会发现两个子文件夹,每个子文件夹对应一种计算机体系结构。输入适合您的游戏的正确选项。即使您的操作系统是 64 位(就像当今大多数版本的 Windows 一样),如果您的游戏是 32 位,您也应该选择 32 位文件夹。
    存档内的 DXVK 32 位和 64 位文件夹
  3. 选择DXGI.DLL以及适合您的游戏所使用的Direct3D版本的正确 DLL 。正如您将看到的,还有三个 DLL,分别对应 Direct3D 的早期版本:9、10 和 11。
    存档内的 DXVK DLL
  4. 找到安装游戏的本地文件夹,然后找到包含可执行文件的子文件夹(“游戏运行的文件”)。将上一步中的 DLL 提取到此文件夹。
    将 DXVK 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 的最新存档放在手边。将它们添加到您想要消除故障、提高性能、获得更流畅的游戏动作并提高响应能力的任何游戏中。

即使它最终没有帮助,尝试一下也只需要几秒钟,而且通常情况下,你可能会对结果感到惊讶。

推荐:WordPress目录插件Web 2.0 Directory


发表评论