Home > Android, Graphics, Linux > Raspberry Pi Gets Open Source 3D Graphics Drivers and Documentation

Raspberry Pi Gets Open Source 3D Graphics Drivers and Documentation

The Raspberry Pi was launched 2 years ago, and for its birthday, Broadcom decided to release documentation and open source OpenGL ES 1.1 and 2.0 driver for the Videocore IV GPU.  You may remember the Raspberry Pi Foundation already release an open source GPU driver in 2012, but this was only for the part running on the ARM11 core for Broadcom BCM2835 SoC, which is just a few hundred lines of code long, and communicates with a binary blob which does all the work in the GPU itself. This new release however goes much further with a 111 page document entitled “VideoCore IV 3D Architecture Reference Guide“, and open source driver for the 3D System of the GPU.

VideoCore IV 3D Graphics Block Diagram (Click to Enlarge)

VideoCore IV 3D System Block Diagram (Click to Enlarge)

Strangely the release is however not for BCM2835, but instead BCM21553. Broadcom clearly has the source for BCM2835 too, so this must have been made for legal reasons. VideoCoreIV packs a lot of graphics feature 2D and 3D graphics, Video Processing Unit (with video codecs), ISP (Imagine Signal Processor) used by the camera, and probably a few other bits, but only the 3D part has been released, which is already a great achievement. The VPU code will never be released because the MPEG LA would not allow this, as they would like to keep on receiving their codec royalties.

That means the drivers, released under a BSD licence, will need to be ported to BCM2835, something that “should be reasonably straightforward“, but is still hard enough for the Raspberry Pi foundation to offer a $10,000 bounty to the first person that can port Broadcom’s VideoCore drivers to run on the Pi, and demonstrate Quake III running smoothly with the open source drivers. My take is you may even land a job if you manage that. I’ll give you a head start by mentioning you’ll need to change the registers’ base address :p.

VideoCore_IV_GPU_Base_Address

Eben Upton also mention it should be possible to “write general-purpose code leveraging the GPU compute capability on VideoCore devices”.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter