英特尔提出了一种在现有 Linux 驱动程序上支持 Vulkan 稀疏的方法

在 Linux 游戏中使用 Intel Arc Graphics 的最大障碍是缺乏 Vulkan 稀疏支持,而这正是使用 VKD3D-Proton 在 Valve 的 Steam Play with Proton 上运行许多较新的 Windows DirectX 12 游戏所需的。英特尔最近确实在 Mesa 23.3 中实现了对 ANV 的 Vulkan 稀疏支持,但它仅适用于尚未升级且仍处于试验阶段的 Xe 内核驱动程序。但现在英特尔 Linux 图形驱动程序工程师已经成功地找到了一种解决方案,可以在使用现有 i915 内核 DRM 驱动程序的同时获得支持的稀疏资源。

缺乏 Vulkan 稀疏支持意味着许多较新的游戏在使用英特尔显卡时无法运行,例如《街头霸王 6》、《Elden Ring》、《刺客信条:英灵殿》等,只是为了让您体验一下英特尔 Arc 显卡支持的一些游戏。在Linux下已经错过了。令人沮丧的是,由于 VM_BIND 对内核驱动程序的依赖,Xe 内核驱动程序一直是初始稀疏支持的要求。但今天开放的新合并请求允许将 Vulkan 稀疏支持与现有 i915 内核 DRM 驱动程序结合使用。

已为 Mesa 发布合并请求草案,该请求使用 TR-TT 实现稀疏绑定作为 VM_BIND 使用的替代方案。TR-TT 与 Intel Gen12 显卡及更新版本一起使用,是 Tiled Resources Translation Table 的缩写。平铺资源转换表 (TR-TT) 将图形虚拟地址预处理为新的图形虚拟内存地址或空平铺。迄今为止,英特尔 ANV 驱动程序尚未使用 TR-TT。

英特尔提出了一种在现有 Linux 驱动程序上支持 Vulkan 稀疏的方法

英特尔工程师 Paulo Zanoni 在MR 草案中写道:

“本系列使用 TR-TT 作为 Gen12+ 的后端(而非 vm_bind)实现稀疏绑定。这样我们就可以在 i915.ko 上尝试 Sparse,并为 xe.ko 提供了额外的选项。这个系列仍在进行中,但 dEQP 测试通过了,我也能玩一些游戏了”。

Paulo 继续在其中一个补丁中详细阐述:

“TR-TT 是 i915.ko 和 xe.ko 都支持的硬件功能。尽管技术上不正确,但当前的实现已经足够好,可以通过所有 dEQP 测试,甚至运行游戏。这里的大问题是我们使用内存映射而不是批处理来写入页表,这意味着 CPU 最终可能会与已经运行的批处理竞争,如果地址相同,这可能会产生问题。在实践中,我们似乎没有发现这种情况,因此一切似乎都能正常运行。”

使用 TR-TT 方法实现 ANV 的稀疏绑定只需不到 500 行新代码。希望这段代码能得到及时的清理和审查,这样它仍然有可能出现在本季度的 Mesa 23.3 中,为英特尔 Linux 游戏玩家带来巨大的推动力。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论