Haiku 和 Linux 同时获得新的开源 Nvidia 驱动程序

近期,两个新的开源 Nvidia GPU 驱动程序发布,分别面向 Haiku OS 和 Linux 系统。这是 Nvidia 开源举措的间接成果,为小众的 Haiku 项目带来重大进展,也为 Linux 用户提供了一个更简洁高效的全开源替代方案。虽然目前仅支持部分新款 GPU,但标志着 Nvidia 开源计划开始结出硕果。

最近发布了两个针对特定 Nvidia GPU 的开源驱动程序。这是 GPU 制造商开源举措的一个令人期待的衍生成果。

两个新的开源驱动程序分别面向 Haiku OS 和 Linux 系统。对于 Haiku 这个实验性的 BeOS 开源重现项目来说,这是一个重大突破,因为该项目一直缺乏硬件厂商的设备驱动支持。而 Linux 端的新驱动虽然不那么关键 (特别是考虑到 Nvidia 已经提供了自己的 Linux 驱动),但它提供了一个更小巧、更简单,可能也更快速的全开源替代方案,可以取代现有的老旧 Nouveau 驱动。

有趣的是,除了这两个驱动都受益于 Nvidia 2022 年的开源驱动发布外,Haiku 驱动还借鉴了另一个新驱动的部分代码。当时,GPU 制造商以宽松的 MIT 许可证发布了其 Linux 内核模块的源代码。

需要注意的是,这两个驱动程序仅支持部分较新的 Nvidia 显卡芯片,具体是指该公司自 2018 年以来推出的 Turing 系列 GPU (主要包括 RTX 20XX 和 GTX 16XX 型号)。两个驱动都不支持较旧的 Nvidia GPU,因此对于仍在使用 Nvidia 旧版 Linux 驱动的用户来说没有帮助。尽管如此,它们的存在表明 Nvidia 2022 年的开源计划开始结出果实...或者至少已经开始开花,很快就会有实质性的成果。

两个驱动中较新的是 X512 的早期实验性 Haiku 内核 Nvidia 驱动。"X512" 就是几年前负责将 WINE 移植到 Haiku 的那位黑客。他们将这个新驱动称为 NVRM。NVRM 本身不是一个完整的图形驱动,但部分基于 Nvidia 的开源代码。

有趣的是,Haiku 驱动的工作方式与英国开源代码开发者集体 Collabora 最近宣布的另一个名为 Zink 的新 FOSS NVIDIA 驱动有关。Zink 的开发已经持续一段时间了 - 最早在 2018 年就宣布了。Zink 通过提供一个将 OpenGL 调用转换为更现代的 3D API Vulkan 的转换层来实现硬件加速 OpenGL。在 Nvidia Turing 系列 GPU 上,Zink 可以与另一个名为 NVK 的开源 Nvidia 驱动配合使用,后者提供 Vulkan 支持。

NVK 来自与 Zink 相同的团队:Collabora 在 2022 年底宣布了它,正如该公告所述,其开发得益于 Nvidia 公开可读的源代码。与现有的 Nouveau 驱动一样,NVK 是一个用于 Nvidia GPU 的开源驱动。NVK 是 Mesa 3D 库的一部分。

Mesa3D 的解释稍微复杂一些。它的官方文档称其是"OpenGL 规范的开源实现"。这是对的,但远远低估了它的重要性。如今,Mesa 还实现了 Vulkan,这是一个跨平台的硬件无关的 3D 图形 API。Vulkan 不是 Linux 专属:它也可以在 Windows、macOS 和 Android 上运行。Mesa 也不仅仅面向 Linux:Mesa 是一个跨平台的 OpenGL 和 Vulkan 的开源实现,可以在多个操作系统上与多个厂商的 GPU 通信。例如在 Windows 上,GPU 厂商确保他们的所有硬件都有支持 Microsoft DirectX 等 API 的最新驱动,而 Mesa3D 则提供了一个 OpenGL 到 DirectX 的接口。因此,Mesa 是 Linux 和 FreeBSD 图形驱动栈的重要组成部分,除了 Nvidia 的专有驱动外,大多数其他开源 3D 驱动都使用 Mesa。

回到新驱动,Collabora 在构建 NVK 上投入了大量工作。NVK 是一个与 Nvidia Turing GPU 通信并提供 Vulkan 接口的设备驱动,然后 Zink 与 NVK 通信并提供 OpenGL。

值得注意的是,X512 成功地将 Mesa 的 NVK Vulkan 实现与他们的新 NVRM 驱动连接起来。结果是一个初步的 Haiku Nvidia 驱动,尽管目前它提供的是 Vulkan,而不是更古老且使用更广泛的 OpenGL。

这是一个重大进步,因为尽管 Haiku(就像它所重现的原始 BeOS 一样)一直具有出色的 3D 图形和视频播放功能,但由于缺乏驱动程序,这些都是通过软件渲染实现的 - 虽然如 2023 年的讨论帖所述,几个驱动程序正在开发中。

BeOS 最著名的演示之一是一个显示 3D 渲染对象的程序,比如一本可以翻页的书,或者一个可以旋转的 3D 立方体。用户可以将多个不同的图像文件拖放到 3D 对象的表面上并进行交互,这些图像会平滑地映射到 3D 空间中。Haiku 自然也有这样的应用程序。

在 1998 年,在 Nvidia 于 1999 年初推出 Riva TNT2 之前,这种效果有多令人印象深刻是很难形容的。对于那个时代没有经历过的读者来说,那是在发布第一款具有硬件变换和光照的大众市场 GPU GeForce 256 之前的产品。BeOS 的演示发生在 id 发布 Quake 仅仅两年后。当时我们大多数人都是在 320×200 分辨率下运行游戏,即使拥有一台性能强劲的 PC,也最多只能达到 30 帧每秒。在高分辨率桌面的窗口中看到这个带有全动态视频的 3D 表面的演示确实令人惊叹。

所有这些都是完全通过软件实现的。想象一下,如果这个操作系统能够访问现代显示硬件的性能,会带来多么令人兴奋的可能性。当然,在 Linux 上有另一个全开源的选择也是很好的。

来源:The Register

0赞

好文章,需要你的鼓励

2025

04/01

11:31

分享

点赞

邮件订阅