AMD 专注于对在 Linux 中运行的 RDNA 3 GPU 进行各种驱动程序改进
AMD 在发布基于 RDNA 3 架构的新 Radeon RX 7900 GPU 时,让 Linux 用户无法获得强大的图形支持。图形内核很旧,在启动期间没有为用户准备更新的固件。现在,工程师们开始通过新发布的固件更新将注意力转移到对 RDNA 3 的支持上,允许用户在 AMDGPU 驱动程序崩溃时依赖固件中的帧缓冲区。
AMD Linux 图形内核在当前的 GPU 请求补丁系列中寻求提高效率
AMD 工程师 Mario Linomciellow 致力于当前的补丁,概述并解释了该过程的工作原理以及如何解决该问题。AMD 研究员解释说,KMS 驱动程序最初通过代码“drm_aperture_remove_conflicting_pci_framebuffers”从系统中破坏固件帧缓冲区。因此,如果显卡未检测到,则在调用 KMS 驱动程序时用户会收到一个冻结的屏幕,尤其是在引入对 GPU 的新支持时。这是因为用户必须升级到更新版本的 Linux 内核以配合最近的更改。
由于“IP 发现”的迁移,AMDGPU 进一步导致问题成为问题。IP 发现导致 AMDGPU 尝试从公司中拉出所有 GPU 以寻找正确的驱动程序,如果块中缺少支持,这将减慢(如果不是冻结)系统的速度。
Linomciellow解释了最近的 Ubuntu 21.10 的情况:
完美的例子是 Ubuntu 21.10 和 AMD 刚刚推出的新 dGPU。安装介质随内核 5.19(具有 IP 发现)一起提供,但对这些 IP 块的 amdgpu 支持在内核 6.0 中登陆。配套的 Linux 固件在 21.10 发布后发布。
如果没有 nomodeset,屏幕将冻结。即使用户设法安装并在安装后升级到内核 6.0,他们仍然会遇到缺少固件和相同体验的问题。
这对用户来说是相当不和谐的,特别是如果他们不知道他们必须使用“nomodeset”来安装。为了解决这种情况,允许驱动程序在失败的探测期间重新运行固件帧缓冲区的初始化进程。由于此问题在 amdgpu 中最为明显,因此这是唯一更改的驱动程序。但如果这对其他 KMS 驱动程序更普遍,则也可以将调用添加到清理例程中。
— Mario Linomciellow,AMD
Phoronix网站的 Michael Larabel今天发现,图形后端的 AMD Linux 工程师要求为 Linux 驱动程序请求 RDNA 3 用户模式图形队列。