Asahi Linux 推出首个公开的 Apple Silicon GPU 驱动程序版本

出品|开源中国

历时两年,Asahi Linux 宣布推出第一个公开的 Apple Silicon GPU 驱动程序版本。目前尚处在 alpha 阶段,“但它已经足够好,可以运行流畅的桌面体验和一些游戏”。

根据介绍,此版本为所有当前的 Apple M 系列系统提供 work-in-progress OpenGL 2.1 和 OpenGL ES 2.0 支持;其足以满足 GNOME 和 KDE 等桌面环境的硬件加速,以及较老的 3D 游戏 (如 Quake3 和 Neverball) 等的运行,可以在 4K 条件下以每秒 60 帧的速度运行上述所有的游戏。但值得注意的是,这些驱动程序尚未通过 OpenGL (ES) 一致性测试,所以可能会存在一些 bug。

开发团队表示,他们下一步的计划是支持更多应用。虽然 OpenGL (ES) 2 对某些应用来说已经足够了,但新的应用(尤其是游戏)需要更多的 OpenGL 功能。OpenGL (ES) 3 带来了大量的新功能,如 multiple render targets、multisampling 和 transform feedback。关于这些功能的工作正在进行中,但它们都需要大量的额外开发工作,而且都需要在 OpenGL (ES) 3.0 问世之前完成。

此外,Vulkan 相关的工作也在计划当中。虽然现在只提供 OpenGL,但开发团队在设计时已经考虑到了 Vulkan;其为 OpenGL 所做的大部分工作都将重新用于 Vulkan。不过按照估计,开发团队将优先推出 OpenGL 2 驱动而不是 Vulkan 1.0 驱动。原因在于 OpenGL 使用范围更广,因此优先支持 OpenGL 更有意义。

Asahi Linux 开发团队的工作内容包括有:

用于映射内存和提交内存映射工作的内核驱动程序

一个用户空间驱动程序,用于将 OpenGL 和 Vulkan 调用转换为图形内存中的硬件特定数据结构

将 GLSL 等着色编程语言翻译成硬件指令集的编译器

团队成员间进行了分工合作:由 Alyssa Rosenzweig 编写 OpenGL 驱动和编译器、Asahi Lina 编写内核驱动程序并帮助开发 OpenGL、Dougall Johnson 与 Alyssa 一起进行指令集的逆向工程,以及 Ella Stanforth 研究 Vulkan 驱动程序,重用内核驱动、编译器和一些与 OpenGL 驱动共享的代码。

“当然,仅凭我们自己是不可能在两年内构建一个 OpenGL 驱动的。感谢自由和开源软件的力量,我们站在了 FOSS 巨头的肩膀上”。

编译器实现了一个 “NIR” 后端、内核驱动程序使用了 Linux 内核的 “直接渲染管理器 (DRM)” 子系统来以最小化 boilerplate;OpenGL 驱动程序在 Mesa 内部实现了 “Gallium3D” API,“通过 Mesa 和 Gallium3D,我们受益于 30 年的 OpenGL 驱动程序开发,以及将 OpenGL 转换为更简单的 Gallium3D 的通用代码。感谢 NIR、Mesa 和 Gallium3D 令人难以置信的工程设计,我们的逆向工程师团队可以专注于剩下的东西:Apple 硬件”。

由于驱动程序尚处于开发中,因此仍存在许多已知问题,官方提供了一份如何报告 bug 的快速指南。用户可定期更新软件包以获得更新和错误修复,更多详情可查看公告。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片