Jeff Geerling Demonstrates 2D, 3D Acceleration on the Raspberry Pi 5 — with an AMD RX 460

An AMD Polaris GPU is the first to successfully show a desktop and run 3D-accelerated games on the Raspberry Pi 5's PCIe lane.

Gareth Halfacree
10 months agoHW101

Maker Jeff Geerling has succeeded in getting a high-performance desktop graphics card running on a diminutive Raspberry Pi 5, thanks to the board's new PCI Express connectivity — though warns that driver bugs mean not every feature works quite yet.

"My journey testing various graphics cards on the Raspberry Pi began soon after the Compute Module 4 was launched in 2020. Since then I've tested almost 20 graphics cards — with a little success," Geerling explains.

"But there were two roadblocks to getting drivers for even older AMD radeon drivers working well: The maximum PCIe Gen 2.0 bandwidth meant use cases were limited to 'processing on GPU' tasks like GPU-assisted [and] the BCM2711 SoC [System-on-Chip] used on the CM4 and Pi 4 had some strange PCI Express bus quirks that caused hard crashes and various faults in drivers attempting to use 64-bit memory addresses."

It's now possible to run a high-performance graphics card on a Raspberry Pi 5, if you're willing to get your hands dirty. (📹: Jeff Geerling)

This time, though, Geerling has had more success thanks to the launch of the Raspberry Pi 5 and its user-accessible PCI Express lane, brought out to a Flexible Flat Cable (FFC) connector at one end of the board and primarily designed to interface with high-speed Non-Volatile Memory Express (NVMe) storage. The new Broadcom BCM2712 resolves some of the issues with the older BCM2711, and allows for more bandwidth than its predecessor — making it possible to run a modern GPU on the Raspberry Pi for display purposes, after a fashion.

"External GPU bring-up on the Pi 5 was much faster since we now know many of the driver quirks are due to old code assuming an X86 architecture," Geerling explains of the project. "In [my] video I demonstrate the Pi 5 displaying [the] Wayfire [desktop compositor] through an AMD RX 460 [graphics card], and running at least much of the glmark2 test."

This isn't Geerling's first attempt to bring up PCIe devices on a Raspberry Pi. Three years ago he succeeded in pushing 4.15Gb/s of network bandwidth through a Raspberry Pi Compute Module 4, and in April last year showed off an AMD Radeon graphics card semi-working on the same device — the only Raspberry Pi, prior to the launch of the Raspberry Pi 5, to feature an easily user-accessible PCIe lane.

Geerling's work builds on that of pseudonymous tinkerer "Coreforge," who contributed a forked kernel and driver package which was able to get the GPU up and running on the Arm-based Raspberry Pi — despite a lack of official support from AMD. Coreforge also shared compatibility details for games including Valve's Portal and Portal 2, Minecraft, and a glmark2 benchmark score of 3,441 — but Geerling warns of a number of bugs which can result in instability.

Geerling has more details available on his website, while progress of the GPU testing can be found on his GitHub repository; Geerling's Raspberry Pi PCIe Database provides details on PCIe devices which have been tested on the Compute Module 4 and Raspberry Pi 5 so far, from graphics cards to network cards and SATA interfaces.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles