即将推出的Linux 6.8内核周期为实验性英特尔Xe内核显卡驱动程序的融合。这个驱动程序已经开发了很长一段时间,但现在已经达到了英特尔在主线内核树中对进一步开发它感到满意的状态。
最终,Intel Xe驱动程序的目标是通过这种干净的驱动程序设计提供更好的性能,这种设计现在能够更好地利用现代内核接口和功能,而不必担心向后兼容i915驱动程序。此驱动程序专为支持英特尔Tigerlake Gen12显卡和更新的显卡而设计,包括集成显卡和独立显卡。通过专注于更新一代的英特尔显卡,他们能够做出更好的设计决策,并减轻驱动程序的负担。英特尔Xe驱动程序还被设计为非x86_64兼容,以使该驱动程序最终能够很好地用于ARM或RISC-V架构上的英特尔独立显卡。长话短说,这最终将成为基于Linux的现代英特尔显卡的一个很好的驱动程序,但截至2023年底,它仍在积极开发中。今天是英特尔首次公开上市一周年宣布他们正在开发这个新的内核图形驱动程序>;。
对于Linux 6.8中的Xe DRM驱动程序,对于所有发布的英特尔集成和独立显卡硬件,该驱动程序在默认情况下保持禁用状态。即使将Intel Xe驱动程序构建为内核的一部分,它也将在默认情况下关闭,而长期使用的i815内核驱动程序仍然是默认的。但当包含Xe驱动程序时,切换到这一新驱动程序很容易。通过像“i915.force_Probe=!56a2 xe.force_Probe=56a2”这样的引导参数足以防止加载i915驱动程序,而不是加载实验性的Xe驱动程序,假设您的PCI图形ID是0x56a2。只需根据您的英特尔PCI显卡ID进行调整,即可轻松启动这个新的内核驱动程序。
除了支持Xe驱动程序用于您的现代英特尔集成/独立显卡硬件外,您还需要担心用户空间支持。英特尔拥有合并了对MESA的支持,以便与Xe内核模式驱动程序接口,但它现在默认情况下被禁用。介子构建选项“-Dintel-Xe-KMD=Enabled”目前需要用于启用Xe内核驱动程序兼容性,否则将不会有OpenGL或Vulkan驱动程序支持。在我的测试过程中,我最初被Mesa 24.0-devel的问题所困扰,而现在为了方便测试,Oibaf PPA正在发布其MESA版本,并设置了-Dintel-Xe-KMD=Enabled。
目前的Intel Compute Runtime堆栈二进制文件也不支持Xe内核模式驱动程序,但希望随着Xe驱动程序在Linux6.8中的上行,这种情况很快就会改变。此外,请确保您拥有最新的英特尔图形固件支持,可从linux-固件.git获取。
对于我用从Intel Xe驱动程序开发树构建的内核进行的测试,它显示了一些粗糙的地方,如报告Xe驱动程序中的各种数组索引越界错误和类似错误的未定义行为清理程序(UBSAN)。
在测试期间,我还遇到了一些管道故障错误的情况。
无论如何,出于对Intel Xe内核驱动程序当前性能的好奇,我运行了一些基准测试,将使用Intel Xe内核驱动程序与在相同版本上使用i915内核驱动程序进行比较。在整个测试过程中使用了相同的Mesa24.0-devel版本。在测试期间,除了切换正在使用的内核图形驱动程序(Xe vs.i915)和交换图形卡之外,没有进行其他更改。我在Intel Arc Graphics A580、A750和A770显卡上运行了一些OpenGL和Vulkan基准测试。