Get Quake III running on Raspberry Pi using Broadcom's open-source GPU drivers, earn $10K
Full code and documentation offered for mobile graphics chip
Broadcom has released open-source drivers and documentation for the graphics processor that's used in the Raspberry Pi microcomputer, among other devices.
"To date, there's been a dearth of documentation and vendor-developed open source drivers for the graphics subsystems of mobile systems-on-a-chip (SoC)," Eben Upton, a Broadcom technical director and Raspberry Pi Foundation cofounder, wrote in a blog post. "Binary drivers prevent users from fixing bugs or otherwise improving the graphics stack, and complicate the task of porting new operating systems to a device without vendor assistance."
Such drivers are, however, the norm, where graphics processor companies release open-source drivers for Linux that are essentially shells that load a proprietary binary "blob" to do the heavy lifting.
On Friday, Broadcom joined the chip makers bucking that trend by releasing the full source code for drivers for its VideoCore IV 3D graphics subsystem, which is part of the SoC that powers the Raspberry Pi, in addition to various components Broadcom makes for smartphones and other mobile devices.
Specifically, the source code release targets Broadcom's BCM21553 SoC for smartphones. The Raspberry Pi is powered by a different component, the BCM2835* [PDF], so the code released on Friday won't work on it without modification.
Whoever makes those fixes, though, will earn a nice chunk of change.
"As an incentive to do this work, we will pay a bounty of $10,000 to the first person to demonstrate to us satisfactorily that they can successfully run Quake III at a playable framerate on Raspberry Pi using these drivers," the Raspberry Pi Foundation said in a separate blog post.
Note that Quake III already runs on the Raspberry Pi (see below). The point is to do the same using nothing but the open-source code released on Friday.
For purposes of the contest, "a playable framerate" means a minimum of 20 frames per second.
To aid the effort, Broadcom has published some 111 pages of documentation [PDF] detailing the VideoCore architecture. The source code itself, which Broadcom has made available under a BSD open-source license, is available here [Gzipped Tar archive]. ®
* The Raspberry Pi's processor package is really a VideoCore GPU with an ARM core conveniently bolted on the side. Thus, as things stand right now, a closed-source binary blob of GPU firmware provided via the Foundation is still needed to bring the board up and initialize the ARM core to run Linux or whichever OS you prefer. Once the ARM kernel is running, software can start poking registers in the VideoCore directly using the released source, it's understood. The closed blob also provides hardware-accelerated MPEG video decoding.