在Linux游戏中使用Intel Arc Graphics的最大障碍是缺乏Vulkan稀疏支持,无法在Valve的Steam Play with Proton上使用VKD3D Proton运行许多新的Windows DirectX 12游戏。英特尔最近做到了
在梅萨对ANV实施Vulkan稀疏支持23.3
但它只适用于他们尚未升级且仍在实验中的Xe内核驱动程序。但现在,英特尔Linux图形驱动程序工程师已经成功地找到了一个解决方案,在使用现有的i915内核DRM驱动程序的同时,获得支持的稀疏资源。
Vulkan稀疏支持的缺乏意味着许多新游戏在使用英特尔显卡时无法运行,如《街头霸王6》、《精灵环》、《刺客信条瓦尔哈拉》和许多其他游戏——只是为了让你体验一下英特尔Arc显卡在Linux下错过的一些游戏。同样令人沮丧的是,由于VM_BIND依赖于内核驱动程序,Xe内核驱动程序一直是最初稀疏支持的要求。但今天打开的一个新的合并请求允许使用现有i915内核DRM驱动程序的Vulkan稀疏支持。
为Mesa发布了合并请求草案,该请求使用TR-TT作为VM_BIND使用的替代方案来实现稀疏绑定。TR-TT适用于Intel Gen12图形及更新版本,是平铺资源转换表的缩写。平铺资源转换表(TR-TT)将图形虚拟地址预处理为新的图形虚拟存储器地址或以其他方式预处理为空平铺。迄今为止,英特尔ANV驱动程序没有使用TR-TT。
英特尔工程师Paulo Zanoni在信中写道
MR草案
:
“该系列使用TR-TT作为Gen12+的后端(而不是vm_bind)来实现Sparse绑定。这允许我们在i915.ko上尝试Sparse,并为xe.ko提供了额外的选项。
这个系列赛仍在进行中,但dEQP测试通过了,我可以玩一些游戏。“
保罗在其中一个补丁中继续阐述:
“TR-TT是i915.ko和xe.ko都支持的硬件功能。
尽管技术上不正确,但目前的实现已经足够好,可以通过所有dEQP测试,甚至可以运行游戏。
这里的大问题是,我们使用内存映射而不是批处理来编写页表,这意味着CPU最终可能会与已经运行的批处理竞争,如果地址相同,这可能会产生问题。在实践中,我们似乎没有看到这种情况,因此事情似乎奏效了。“
Implementing sparse bindings for ANV with the TR-TT approach is just under 500 lines of new code. Hopefully this code gets cleaned up and reviewed in a timely manner so it could potentially still appear in this quarter's Mesa 23.3 as a big boost for Intel Linux gamers.