Microsoft|CodeWeavers团队致力于为Mac引入DirectX 12游戏兼容支持

当 Valve 携手 CodeWeavers 团队的部分成员以帮助构建 Proton 时,他们可能没料到后者取得现今如此巨大的成就 。自 2016 年秘密开动以来,Steam 游戏库中的很大一部分,现在都可以在 Linux 平台上体验了 。这些游戏的一个共通点,就是未搭配旨在检测其运行环境的 Windows 反作弊客户端,所以也没有成为与 DXVK / VKD3D 不完全兼容的 DirectX 调用的受害者 。
访问:
微软中国官方商城 - 首页
【Microsoft|CodeWeavers团队致力于为Mac引入DirectX 12游戏兼容支持】Microsoft|CodeWeavers团队致力于为Mac引入DirectX 12游戏兼容支持
文章图片

(来自:CodeWeavers)
Neowin 指出,DXVK 是负责将 DirectX 即时转换为 Vulcan 的软件,而 VKD3D 也为 DirectX 12 提供了同样的支持 。
当然,CodeWeavers 对 Proton 的衍生技术并不陌生 。20 多年来,他们一直在 Wine(不是一套单纯的模拟器)上构建,积极为公共与私营部门提供商用解决方案 。
2006 年,当苹果转投英特尔芯片时,CodeWeavers 的消费级产品 Crossover Office 也获得了新生,促使其将 Linux / Xorg 上的原生应用程序移植到 BSD / Aqua 环境 。
Microsoft|CodeWeavers团队致力于为Mac引入DirectX 12游戏兼容支持
文章图片

现在,CodeWeavers 团队正面临着与 DirectX 12 实现兼容的新挑战 。尽管实验代码已合并到 Valve / Proton 中,以供 Linux 用户使用 。然而 Mac 上的 VKD3D,仍面临着诸多必须克服的技术挑战和限制 。
具体说来是,登陆 macOS 平台的最大障碍,是苹果家的 Metal 底层 。与 Vulkan 等跨平台技术相比,DX12 可调用百万级的着色器资源视图(SRV),而 Metal 的 SRV 上限仅为它的一半 。

简而言之,Metal 以不同的方式进行细分,且缺少几何着色器与变换反馈,结果就是 DX12 / Metal 存在特定的资源限制问题 。
通常游戏需要访问至少百万个着色器资源视图(SRV),访问这么多 SRV 需要在第 2 层级进行资源绑定 。但 Metal 的每个参数缓冲区仅支持大约 50 万资源,因而无法做到 2 级资源绑定 。
即使 Metal 的 50 万限制对于 Vulkan 描述符索引已足够,但这种情况并不适用于 D3D12 —— 意味着 CrossOver Mac 不支持 Tier 2 绑定,导致许多 DX12 游戏无法运行 。
好消息是,CodeWeavers 似乎有信心扫除这些障碍,并在即将推出的 CrossOver 23 中为 Mac 带来 DX12 兼容性(推向上游 Proton 实验) 。
当然,如果你不强求在 M1 硬件上玩 PC 游戏,那在 Steam Deck、SteamOS 3.0、以及广阔的 Linux 桌面环境中玩游戏的朋友,还是能够更快地获得这项体验的 。
这对于那些想要在M1 硬件上玩 PC 游戏的人来说是个好消息 。对于那些计划在 Steam Deck、Steam OS 3.0 或广阔 Linux 桌面环境中的任何其他地方玩游戏的人,您将能够更快地利用这些进步,因为它们被推向上游Proton 实验 。

推荐阅读