AMD left Linux users without great graphics support when they released the new Radeon RX 7900 GPUs based on the RDNA 3 architecture. The graphics core was outdated and did not equip users with the latest firmware during launch. Now, engineers are beginning to shift their focus toward RDNA 3 support with a newly published firmware update, allowing users to draw on the frame buffer from the firmware when the AMDGPU driver crashes.
The AMD Linux graphics kernel strives to improve efficiency in the current patch chain of GPU requests
Mario Linomciellow, an AMD engineer, works on the current patch, demonstrating and explaining how the process works and how to deal with the problem. An AMD colleague explains that the KMS drivers initially destroy the firmware frame buffer from the system with the code “drm_aperture_remove_conflicting_pci_framebuffers”. Therefore, if the graphics card misses checking, the user receives a frozen screen while calling the KMS driver, especially when introducing new GPU support. This is because users have to upgrade to a newer version of the Linux kernel to catch up with the recent changes.
The AMDGPU also caused a problem because of the “IP Discovery” relay. IP detection causes the AMDGPU to try to pull all GPUs from the company trying to find the correct driver, which slows down the system, if not freezes, if support is missing from the blocks.
Linomciellow explains the situation with the recent Ubuntu 21.10:
The perfect example is Ubuntu 21.10 and the new dGPUs that AMD just launched. The installation media shipped with kernel 5.19 (which has IP discovery), but amdgpu support for these IP blocks landed in kernel 6.0. The corresponding Linux firmware was released after the release of 21.10.
The screen will freeze without the set of icons. Even if the user can install and then upgrade to kernel 6.0 after installation, they will still have the missing firmware issue and the same experience.
This is very annoying for users, especially if they don’t know that they have to use a Codec Suite to install. To help with this situation, allow the drivers to restart the init process of the firmware frame buffer during the failed probe. Since this problem is more pronounced with amdgpu this is the only engine that has been changed. But if this generally makes sense for other KMS drivers, the call can also be added to the cleanup routine.
– Mario Linumcillo, AMD
Today, Michael Larabelle of Phoronix discovered that AMD Linux engineers have requested an RDNA 3 user-mode graphics queue for a Linux driver on the graphics backend.
The hope is to start supporting the Raden RX 7000 series and later GPUs. This would affect the AMDGPU Linux DRM driver and allow “direct workload dispatch from the user space graphics context that would allow increased performance and improved graphics management for many applications and games exclusive to AMD scenarios and full screen.” Larabel notes that the AMD ROCm compute stack already allows for similar functionality. .
News sources: Phoronix 1, 2, Linux kernel, Freedesktop