graphics

AMD Radeon PRO W7700 running on Raspberry Pi

Raspberry Pi 5 with AMD Radeon PRO W7700 graphics card

After years of work among a bunch of people in the Pi community (special callout to Coreforge!), we finally have multiple generations of AMD graphics cards working on the Raspberry Pi 5.

We recently got Polaris-era GPUs working (like the RX460), but in the past month we've gotten 6000 and 7000-series GPUs up and running. And many parts of the driver work at full performance—well, as much as can be had on the Raspberry Pi's single PCIe Gen 3 lane (8 GT/sec)!

I've been testing tons of modern AAA games, like Doom Eternal and Crysis Remastered, and can get 10-15 fps at 4K with Ray Tracing on, or 15-20 fps at 4K. Dropping down to 1080p is not enough to overcome the Pi's CPU bottleneck—only at resolutions under 720p does the Pi's CPU and the single PCIe lane not seem to get in the way quite as much.

How many AMD RX 7900 XTX's are defective?

I'm working on a project—a very dumb project, mind you—and I was trying to acquire the two current-gen flagship GPUs: an Nvidia RTX 4090, and an AMD Radeon RX 7900 XTX.

In some weird stroke of luck (it has been difficult to find either in stock), I was able to get one of each this week.

AMD RX 7900 XTX Reference Sapphire edition versus Nvidia RTX 4090 Gigabyte boxes

(lol at the size difference...)

Besides exorbitant price gouging, Nvidia's ownership of the crown in terms of GPU performance remains in this generation, as the 4090 blows past any competing card so far. But AMD's 7900 XTX was poised to be the best value in terms of price, performance, and efficiency (at least compared to any Nvidia offering).

External graphics cards work on the Raspberry Pi

AMD Radeon HD 7450 Graphics card with Raspberry Pi Compute Module 4

In October 2020, after Raspberry Pi introduced the Compute Module 4, I started out on a journey to get an external graphics card working on the Pi.

At the time, it'd been over a decade since the last time I'd built a PC, and I had a lot to learn about PCI Express, the state of graphics card drivers in Linux, and PCI Express support on various ARM SoCs.

How to run glmark2-drm to benchmark an external GPU on a Raspberry Pi

Recently I wanted to see whether I could get glmark2 (an OpenGL 2.0 and ES 2.0 benchmark tool) to run on a Raspberry Pi with an external graphics card (see this thread).

But glmark2 isn't available in any Pi repositories, so you have to build it from source:

sudo apt install -y meson libjpeg-dev libdrm-dev libgbm-dev libudev-dev
git clone https://github.com/glmark2/glmark2.git
cd glmark2
meson setup build -Dflavors=drm-gl,drm-glesv2
ninja -C build
sudo ninja -C build install

I built this for drm only, so it can run fullscreen without any X/Wayland environment. To run the full suite:

glmark2-drm

Or you can run a specific benchmark like glmark2-drm -b jellyfish.

Tried Nvidia's GTX 1080 - still no external GPU on a Pi

Earlier today I did a livestream on my YouTube channel to attempt using an Nvidia GeForce GTX 1080 on a Raspberry Pi Compute Module 4.

MSI Nvidia GeForce GTX 1080 Graphics Card GPU

As with all my testing, I'm documenting everything I learn in this GitHub issue, which is part of the Raspberry Pi PCI Express Card Database website.

It's only been a few hours, but I've already gotten good suggestions for better debugging than I was able to do on the stream. And someone pointed out it might be the case, due to 32-bit memory limitations on the BCM2711's PCIe bus, that no GPU with more than 4 GB of onboard RAM could work. Though it's hard to confirm there'd be no software workaround—even 1 and 2 GB graphics cards (AMD and Nvidia) are crashing the kernel in similar ways.

The full livestream is available on replay and is embedded below:

Three more graphics cards on the Raspberry Pi CM4

Last year I tested two older graphics cards—a Radeon 5450 and a GeForce GT710—on a Raspberry Pi Compute Module 4.

Jeff Geerling holds NVidia and ASRock Rack GPU and Raspberry Pi Compute Module 4 with quizzical look

This year, I've been testing three more graphics cards—a GeForce GTX 750 Ti, a Radeon RX 550, and the diminutive ASRock Rack M2_VGA.

The Compute Module 4, if you didn't know already, exposes the BCM2711's single PCI express lane, and the official IO Board has a nice, standard, 1x PCIe slot into which you can plug any PCI express device.

Yet Again: Catholics, please stop stealing artwork and graphics!

I feel like a broken record... yet again, I was perusing the Internet (this time, Twitter), and then I noticed an illustration—a very familiar one—of the Roman collar (the white collar worn by priests):

@Boutleg didn't create the graphic; it looks like uCatholic originally posted the graphic on Facebook, where it was shared and reshared thousands of times, and liked (through that network of shares) many thousands of times.

Android Map Marker Drawables/Icons - Original Vector Illustration

I've been looking around for a good set of Android map marker icons (drawables), and I've only seen a few that included a vector image (Illustrator or EPS graphics) so I could customize the icon however I wanted. So, I just created my own icon, saved five common colors to a set of xhdpi, hdpi, mdpi, and ldpi sizes, and posted them to a new repository on GitHub: Android Map Marker Drawables (icons).

Please see the GitHub repo for more information about the icons, how to use them, and for the original vector image. Here are examples of the icons (in hdpi resolution):

Advent Wreath - Vector Illustration

I was recently inspired by Jeffrey Miller's embeddable Advent Wreath widget to try my hand at illustrating and animating an advent wreath in HTML5 with the <canvas> element or by animating an SVG.

My heart was in it for a while, but I ultimately gave up on the project due to the fact that I had already spent a couple hours on it and wasn't happy with my progress...

Advent Wreath - Vector Illustration by Jeff Geerling

However, I did end up with a fairly good illustrator/vector wreath and candles (I spent a bit of time trying to get the flames looking just right), and also created a brush to create the actual wreath, making it look somewhat like an evergreen wreath.