A birthday present from Broadcom

Two years ago today*, the Raspberry Pi Model B went on sale, selling 100,000 units on the first day. Since then, over 2.5 million Raspberry Pis have found homes with hobbyists, children and professional engineers around the world.

Each Pi in this first pallet now has over 1250 friends.

The success of the Pi has allowed us to make substantial financial contributions to a range of open-source projects, including XBMC, libav, PyPy, Pixman, Wayland/Weston, Squeak, Scratch and WebKit, and we are continuing to sponsor projects like these. But it’s always felt like we have a piece of unfinished business.

In common with every other ARM-based SoC, using the VideoCore IV 3d graphics core on the Pi requires a block of closed-source binary driver code (a “blob”) which talks to the hardware. In our case, this blob runs on the VPU vector processor of the BCM2835 (the SOC or System On a Chip at the heart of the Raspberry Pi); our existing open-source graphics drivers are a thin shim running on the ARM11, which talks to that blob via a communication driver in the Linux kernel. The lack of true open-source graphics drivers and documentation is widely acknowledged to be a significant problem for Linux on ARM, as it prevents users from fixing driver bugs, adding features and generally understanding what their hardware is doing.

Earlier today, Broadcom announced the release of full documentation for the VideoCore IV graphics core, and a complete source release of the graphics stack under a 3-clause BSD license. The source release targets the BCM21553 cellphone chip, but it should be reasonably straightforward to port this to the BCM2835, allowing access to the graphics core without using the blob. 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. This competition is open worldwide, and you can find competition rules here which describe what you have to do, and how to enter. Update: this competition is now closed

We filmed a demo of a Raspberry Pi alpha board running Quake 3 back in 2011. It feels like it happened a lifetime ago.

This isn’t the end of the road for us: there are still significant parts of the multimedia hardware on BCM2835 which are only accessible via the blob. But we’re incredibly proud that VideoCore IV is the first publicly documented mobile graphics core, and hope this is the first step towards a blob-free future for Raspberry Pi: we’re continuing to work on that, and we hope you’ll come along with us!

* Okay, so sue us**: we launched on February 29.

** Please don’t sue us.

203 comments

Avatar

WOW!!! THANK YOU Broadcom! That’s quite a substantial gift, thanks!

I’m not in the running for the price (s’cuse the pun ;) ) but I expect more applications will benefit of a new Open Source driver for the RPi.

Best of luck to all contestants!

Avatar

Holy Mother of God that’s cool…

Avatar

I remember when it was common knowledge that no manufacturer would ever publish their registers.

Now we have ati and broadcom doing the do.

Avatar

does this affect the need for the video codec licensing?

Avatar

No, it doesn’t – and it’s a reason we have to keep the blob, unfortunately, or we’d be sued into a smoking hole in the ground by the MPEG LA. We’re going to be working on a minimal, open blob so you’ll be able to boot without it, but that won’t happen for a while; it’ll be a fair amount of work.

Avatar

A completely open firmware (even if it lacks things like MPEG decoding) would make a lot of people very happy.

Avatar

We’ll do our very best – we know it’s what you want, and we’d like to see it too.

Avatar

Very cool. Thanks!

Avatar

MPEG is very proprietary whereas OGG VORBIS is not and has better technical performance.

Richard

Avatar

Apparently, Broadcom hardware doesn’t contain Ogg Vorbis implementation/acceleration in hardware but it presumably contains something for MPEG.

Avatar

Does this mean it’s possible to build a blob that does support it for people who live in countries where the whole mpeg software patent thing isn’t an issue, or is that left to sheer guess work?

Avatar

“minimal, open blob so you’ll be able to boot without it”. Do you mean that the RPi could in theory boot without any blob ?
And if so, now I am wondering if an OpenBSD port may be possible.

Avatar

The Pi would always have to boot from the ‘other processor’ (the VPU) because that’s the boot order. I could probably write a boot loader for the ARM using the open compiler written by Herman Hermitage but it would have to leave everything running at 19.2 MHz

I’m guessing you’d probably need it to be a bit faster!

Gordon

Avatar

Theoretically, there’s nothing to stop someone from, say, Germany or New Zealand from creating a firmware that includes MPEG. Then those of us in the States can use it at personal risk. My understanding is that that’s pretty much how VLC works.

Avatar

That is awesome news! Once the binary blob has been removed, and if it becomes possible to actually buy the Broadcom chip on the open market, the Raspberry Pi would probably be the most open device of this kind on the market. Way to go!

Avatar

Awesomeeeeeee!

Avatar

This will open up for usable Android on the Pi, right?

Avatar

It will. (Which is great news for the cleanliness of my inbox: I get some VERY NASTY emails about Android on the Pi, and it’s not led me to think great things of the Android community. A tip, folks: if you’re massively rude, you’re not going to get a response.)

Avatar

*hugs*

(For having to deal with very nasty emails).

Avatar

Sorry to hear that liz, we get our share of it too however,
guess people can’t be patient.

Avatar

iOS users are very familiar with the phenomenon of utterly insane Fandroids. Most Android users just like their phones, but the Fandroids contingent is aggressively cultish. I kid you not, a Fandroid once compared my preference for iOS to racism. No sense of perspective whatsoever.

Avatar

TBH, you get the same from the more rabid Apple iFans as well.

Avatar

Wellllll… I won’t say it doesn’t happen ever, and maybe I don’t hang out in the right places, but it doesn’t seem to be nearly as common. Plus, a lot of Fandroids treat their advocacy as a moral crusade; Mac users used to do that back in the 90s, but now that Microsoft is in a situation where if it wasn’t for their installed base they’d basically be screwed, there’s not so much of that. And, frankly, I don’t think most Apple fans have any particular animus against Linux or Android; I’ve been using both side by side for years myself, and the maker movement is Linux-powered almost wall-to-wall. (Darwin on RPi would be nice, but I don’t think there’s much demand or it’d exist already.)

Avatar

ADHD = Android Deficit Hyperactivity Disorder.

Apologies to those who suffer the real genetic disorder, ADHD.

Colin

Avatar

Come on, Android on free/open hardware? Do you want to go free? No, you want to run Android, so sad.

Avatar

If someone gets a build of android to run smooth (or at all) with this, can you please post a .img for the less android-savvy?
Thanks!!!

Avatar

I guess we have to assume that the BCM2835 now counts as end-of-support hardware and there’s no commercial disadvantages to letting the World loose on the videocore.

T’is a grand birthday prezzie for the Pi.

Avatar

Not always, Imagination Tech just opened up up a bunch on their brand new rogue ip and it got them a lot of good press.

Avatar

Whatwhatwhat? Really? Citation plz? O_O

eben

Not really. VideoCore IV is Broadcom’s current generation multimedia architecture, and BCM2835 continues to ship, with support, to multiple customers.

Avatar

This is good news!

As far as the MPEG hardware video codecs, they are only useful if you plan on using it as a “Media Center” machine.

There’s no need to have proprietary closed source software occupying a system when it’s not even needed.

Avatar

Not true. Without the codecs, no video recording or playback from the camera. Which is why there is a continued need for closed source code.

Avatar

Would be possible to use existing hw block for a patent-free codec (I’m thinking wepm)?
Maybe Google would be interested in investing resources to have a hw support for their codec

Avatar

They are also free to offer $10.000 for anybody porting wpem on the Raspberry-Pi :-) :-)

Avatar

Thats even a better prize than winning a wireless mini keyboard by playing snake at the jamboree!

Avatar

OK, so I expected there would be a little celebration with some tasty little cakes, perhaps some cheap Champagne, and maybe a couple of candles, cigars, or other such incendiary devices. But this? No, I’ve obviously stumbled into some parallel universe where Eben sports a moustache every month except Movember, Liz plays Mom to a spoiled actual child named Mooncake (on a takeoff of Frank Zappa’s daughter, Moon Unit), and there never was a WIntel hegelopoly. Well, the joke’s on you jokers, as April 1st is still a month away and it’s not fair teasing us like this.

Wait a minute, the links actually go to real source code and documentation, and the source actually builds … what the #@*% is going on here? OMG, DOES THIS MEAN I WILL BE ABLE TO BUILD COMPUTE ENGINE CODE ON THE GPU??? “WHAT HATH EBEN WROUGHT?” “WATSON, COME HERE, I NEED YOU … NEVER MIND, YOU OCCUPY 20 REFRIGERATOR SIZE CABINETS AND MY PI IS THE SIZE OF A CREDIT CARD … THAT DOES 24 BILLION FLOATING-POINT OPERATIONS PER SECOND IN UNDER 3 WATTS!”

Well, “THANK YOU!!!” doesn’t seem to quite cut it now, does it? Will first-born youngsters do? I don’t have any, but I’m sure I can find a more-than-willing donor! :lol: How about slightly used-and-abused limbs of various left-right symmetry? I still can’t believe this, and if it turns out I’m waking up from a bender I don’t recall starting, I’m gonna be really mad. In the unlikely event this is for real, well, for the first time ever here, I’M SPEECHLESS! There, I said it, OK? ;) Wow, I still can’t fathom what this means. I’d better go do a complete test build with some changes just to convince myself that this is actually happening … Seacrest, OUT! :o

Avatar

If you do manage to build some compute code for the GPU, I’d love it if you wrote about it. I want to do some, but I don’t have the time to do all the fiddling about right now.

Avatar

WAHOOO! Like Jim I’m speechless so: SUPERCALIFRAGILISTICEXPIALIODOCIOS!!!!!!!

Avatar

Your writing. I like it.

Avatar

Well this is a huge step forward toward liberating the raspberry pi, it should make RMS really happy :D

Avatar

Already sold 2.5M, how much more liberated can it get? I can’t see this news (great though it is) meaning lots more would be sold than previously forecast. But still, great news and I look forward to seeing what people do with it.

And RMS happy? Doubt it. There’s always something!

Avatar

But if we can have a full free blob that boots a free OS, I don’t see what issues he’d have?

Avatar

Stallman is still living in an era where share and share alike was the rule rather than the exception, including computers the size of refrigerators supporting multiple users with the horsepower of a 386sx or less. It’s come back around, and the RPi and relatives can easily curbstomp the PDP-11s and Lisp Machines of the AI era, but it’s a world Stallman doesn’t even recognize even though he created it. He’s obsoleted himself.

Avatar

Actually, we’ve had some very nice mail from RMS since Friday; he’s always been very supportive of what we’re trying to do re open. (So nee-ner.)

It’s been surprising and refreshing to me that he’s understood that we were not able to start off, from a FOSS point of view, where we are today; and also that we’ve been trying to get here all along. Not a bad word to say about him: he’s been a stand-up guy all the way through.

Avatar

“Liberating”. Ha.

We have Pis being used in classrooms in Africa and South America – developing countries where students previously have never even seen a computer, let alone one that you can program and hack about with.

Engineering is the art of compromise: you work with what is available to you to make the best solution to the problem. Teach the world computing? I don’t care much for idealism if the result is half a million more entrants to higher education with a route through STEM subjects.

Avatar

Shamelessly replying to my own post:

Torvalds stated some rather characteristically pragmatic views on the Pi in 2012:
http://www.raspberrypi.org/archives/1420

I’m not saying that opening up the V3D block isn’t worthy of praise (I for one would love to get my dirty mitts on the VPU and start bending its rather fun and feature-full instruction set to my will), it is just one facet of the whole picture.

You get the young and bright hooked on a disposable, fun embedded computer – then you get them to write software-defined radio processing on the VPU as an A-level project, then you get them to use the V3D block for things that it was never intended – turning the OpenGL ES hardware into general parallel compute hardware, for example.

Avatar

You betcha!

Maverick: “I feel the need…”
Maverick, Goose: ” … the need for speed!”

— “Top Gun”, 1986

Avatar

“Engineers” – capable of ‘engineering interfaces’ ***. Ahh, bliss. (As opposed to ‘engineers’ incapabale of telling the difference between an eight-legged diode and an op-amp).
A standing question that I now pose to all job applicants is ‘Do you own, or have you ever used (or heard of) a Raspberry Pi?”. Answer ‘yes’, and the interview might even move on to the second paragraph . . . .

Cheers,
Niall

*** NJS/JDB ‘in-joke’

Avatar

Great news! “complete register-level documentation” sounds very exciting (not least because I understood this would never happen.) Does this have any bearing on the possibility of end-user access to the MIPI CSI interface used by the R-Pi camera, which I gather goes through the GPU, or is that still an off-limits area?

Avatar

I believe this is just the graphics stacks, and that appears to be the case from my quick scan of the download. I would be surprised if anything camera related were released – that’s still very ‘current’.

Avatar

Hmmmmmm, so no clever long-exposure hacks coning fown the line then ?

Avatar

If there was a clever hack easily available we may even have tried it by now….

Avatar

Happy Birthday and Congratulations on building something so damn cool that there’s now 2.5 million of them out there!! That’s just astounding…

The news from Broadcom sounds exciting. I’m not at all sure what to expect from this but it’s certainly excited Jim Manley so it must be cool!!!

Avatar

possible to access the camera module with bare metal code?

Avatar

You can already do that using the current interface, but if you are talking about register access to the camera subsystem, no, this is graphics only.

Avatar

So will this speed up the process for 60fps with the camera board as well?

Avatar

Hi and congratulations!
Does this have any effect on the possibility of using the DSI pins? I really want to start wiring a screen to my pi without having to waste the GPIOs.

Avatar

You’ll be able to do that later this year. https://twitter.com/ben_nuttall/status/439385861881593857/photo/1 – I’ll be writing some more about this in the coming weeks.

Avatar

Thank you very much. I want to play Warzone 2100 and other open 3d games on the PI and I was getting compiling errors relating to libsdl1.2 not being available (I think 3d driver headers not beeing found because they are closed source). I am sure this WILL solve that problem, allowing any 3D game to compile. :D
I WANT A LOT OF OPEN 3D GAMES TO JUST WORK :) Thank you, again !

Avatar

I guess that depends on whether the games you want to run target OpenGL or OpenGL ES – only the latter is available on the Pi, but most ‘desktop’ games target OpenGL.

Avatar

Happy birthday !

Looks like an interesting present from Broadcom, and a good challenge for some smarter people than me !

Generally, it is a step in the right direction, that hopefully Broadcom and others will take further.

It seems the Raspberry Pi foundation is not only good to help kids getting better, but companies too ! ;)

Avatar

Can someone now port android 4.4.2 to rpi?

Avatar

Were working on it,
idle in our irc,
irc.freenode.net #razdroid

Avatar

Eben, I remember you mentioning before (at the Cambridge Wireless event at Broadcom) how hard this would be to pull off. Very well done sir!

eben

Actually, as Liz says, it was surprisingly smooth. Just a case of putting in the hours (not just me, but countless others at Broadcom).

Avatar

Hello Eben,

May I ask why releasing the BCM21553 source in place of the BCM2835 one ?
I know this makes a great bounty, but if this move was directed to the Raspberry Pi (and not the Android phones) it seems strange.

Anyway, it is just a matter of time now for someone to port it, so it doesn’t make a big difference.
Thanks again !

Avatar

Fantastic news! I was not expecting anything like this. A million thanks to those who were able to convince Broadcom to do this.

If Broadcom can do this, so can everyone. Are you listening, Xilinx?

Avatar

It’s been a slog, but Broadcom’s been brilliant to work with on this, and there were so many people from the engineering level all the way up through management who were so enthusiastic about it that it’s all gone very smoothly. It’s been a hell of a lot of work for them over several months; we’ve just delivered a bottle of wine to their technical publications team, who have sweated blood.

Avatar

I hope it was a very nice bottle of wine ;-)

Avatar

Would this potentially free the Pi for other uses such as cryptocurrency mining?

Avatar

Well actually, there are already a lot of people doing that with the Pi as it is. Check out http://learn.adafruit.com/piminer-raspberry-pi-bitcoin-miner/initial-setup-and-assembly, for example.

Avatar

Yea, but they’re using the ASIC USB miners to do the actual work. Currently ASICs are not available for scrypt currencies (LiteCoin, DogeCoin), so we’re still using GPUs to hash.

Would be interesting if we could use the GPU (or both GPU and CPU) to hash these.

If it were possible, I’d be tempted to setup a cluster

Avatar

That’s amazing and brilliant news. I guess that means my friend doesn’t have to finish all the hardware reverse-engineering we’d started! (Damn, that was shaping up to be an interesting ride.)

As you can see, VC4 is a surprising beast of a chip – if you’ve never worked with a vector processor, they’re a bit of a sod to work with, and that it’s a 2D vector processor makes it unlike anything I’ve coded on before.

We can make it entirely blobless, and we will. It’s very interesting to see the different names used for everything and put it into perspective!

Not all the registers are documented, btw.

Avatar

r_picmip 10
???
profit

Avatar

I just want to add my congratulations to all the others for an excellent piece of work achieving this. I love the idea of the bounty for the Quake 3 port – and I just saw the tweet from John Carmack – wow !

” ‏@ID_AA_Carmack 1h
I smile to see Quake 3 as the goalpost. Would be fun to work on… “

Avatar

Wow, I just know that was a lot of work behind the scenes. And some patience expended. Thank you all!

Avatar

Hopefully this will mean that Android on Pi will be a reality!

Avatar

Submitting Suing request… Done!

Withdrawing Suing request… Error 229!

Ouch.

Avatar

Does this mean OpenCL could be in RPi’s future?

Avatar

We’ll have some more about GPGPU for you next week. :)

Avatar

OOow what a tease of a statement. Can’t wait. Roll on next week.

Avatar

At a pinch, multi-processing can be taught with multiple Raspberry Pis. My biggest bugbear about the Raspberry Pi has always been the inability to use it to teach youngsters effective GPGPU programming.

This may be about to change….

Avatar

Why on earth would you want to teach youngsters ( I presume around 8-12 yrs) GPGPU coding? There is many years worth of teaching just on the Raspi ARM itself! Surely the pain of GPGPU coding would be more likely to put young people off? In my 30 years of development, I have never done ANY GPGPU style coding (and I work on the Videocore day in day out) so it’s not as if its a major in-demand technique.

There is so so much to learn without ever going near the GPU, and most has to be learnt before GPGPU anyway.

And of course, multiprocessing (I assume you mean multithreaded and/or multiple process) can easily be taught on the Raspi – it a full blown Linux which means processes and threads are easily available. So I am not sure what you mean by ‘at a pinch’. It’s no more ‘at a pinch’ that any other desktop Linux.

Avatar

Eben was shocked at the lack of skills and knowledge in undergraduates. I accept that there is much for primary school pupils to learn from the Pi but I do not think it was meant to be limited to them. Neither do I want to ban gifted teens from delving into the intricacies of multiple cores/processors and GPGPU programming if they are interested. Who knows what algorithms they could come up with, given the chance. Revolutions require bright sparks.

Avatar

I wouldn’t be shocked at an interview is someone didn’t know GPGPU though. Perhaps if they had never heard of it, but even so, it’s very much niche at the moment, and due to its complexity likely to remain so for some time. As I said, there is such a vast amount to learn just with a ‘closed’ Raspi.

That said, I’m not going to stop people learning GPGPU on a Raspi if they want to! I just don’t see it as a core requirement when learning to program/code/design/analyse.

Avatar

I think we’re in agreement.

The Raspberry Pi is already taking many kids far further than was thought possible. I suspect this announcement will lead to new boundaries of unbelievability. And new programming languages…

Avatar

like others in these comments, hoping to hear from Liz on gpgpu when she’s up and about ~:”

Avatar

Does this mean that there is hope for sub-frame streaming/encoding, or is that part all still locked away in the encoder blob?

Avatar

I believe the encoder/decoder code is still closed, for the simple reason that if it were open there would be problems maintaining the licence key security, leaving the Foundation open to being sued by MPEG LA. That’s my reading anyway.

Avatar

Considerations! Would love it when this makes Android usable on the pi now!

Avatar

So what is the current status of Quake on the Pi, since original video release?

Avatar

liz, some comments here indicate it contains proprietary code, you might want to fix that:

https://lwn.net/Articles/588931/

Avatar

Does that mean mesa in which case woo full minecraft! =-O

Avatar

Did someone say Minecraft???

Oh, sorry… something shiny caught my eye.

Happy Birthday, Pi!

AND, I promise never-ever to sue you, nor to su you, nor even to Boy Named Sue you.

But I’m all kinds of proud of what the Foundation has accomplished in such a short amount of time.

(…excuse me, but I have an Interstellar Colony Ship to get back to in Minecraft-Pi…)

Avatar

Happy Belated Birthday!

Avatar

Anyone finished porting the driver yet??

I’d imagine this would happen pretty quickly with the $10,000 bounty.

Good Business Strategy RPi Foundation. Looking Forward to driver completion!

:P

Avatar

I have a small worry that the bounty will encourage people to work in private and not share code, so in the worst case it could slow the porting down.

Avatar

Well, that’s entirely up to people. If they want to work in private, they are certainly entitled to do so. As for the speed, again, that’s up to people. It’s not as if we are desperately waiting for it to be complete, we have perfectly serviceable (but closed source) driver already (which will likely be faster apparently than the ARM side version). And there is no time limit that I am aware of to the competition.

Avatar

Should be done with this shortly!

Avatar

Well done ! … not an easy achievement … thank you for doing all the ‘heavy lifting’ !

Avatar

Is this a part of some greater move towards openness on Broadcom’s part or do they just open up documentation and source for a single chip?

eben

I’m an advocate of it within Broadcom, as you can imagine. The trick is to present the positive business case for openness as we did in this case. Then people are often very receptive.

Avatar

So if, for example, Pi sales rocketed even faster than they already have, and people across the web started posting about the truly awesome things they were now able to do thanks to those incredibable froods at Broadcom…

I see great things ahead, and I can’t code graphics on anything more advanced than a potter’s wheel. :o)

Avatar

Lags gonna be HISTORYYY !!

Avatar

Hi guys
I have some questions that don’t appear to be covered by the rules:
1) is the driver allowed to make any quality changes to the rendering? (ie change the texture filtering)
2) how will you validate it is rendering “the correct” result?
3) can the driver make any game-detecting optimisations, eg disabling screen clears knowing they aren’t necessary?
4) can modifications be made to the code in the Q3 repo, eg CPU code optimisations or graphics-related changes?
5) how will you judge the “minimum frame rate”? This can be influenced by disk I/O. Will this just time the render completion time?
6) do any other applications that use this .so need to work?

Cheers!
Simon

Avatar

7) as this challenge only appears to concern the VC IV 3D subsystem (ie requiring only the delivery of libGLESv1_CM.so and libEGL.so), I’d imagine we’d still need a Rpi-specific binary blob for the board itself? If so, will one be provided that has allows us to hook in our work – or will we really need to be able to boot the boot from scratch using our own self-compiled binary?

eben

1) is the driver allowed to make any quality changes to the rendering to meet the frame rate target? (ie change the texture filtering)

The output should be indistinguishable to the naked eye to the output from running the closed-source pipeline. Although the closed-source version uses anti-aliasing, I think we might well allow through a non-anti-aliased entry.

2) how will you validate it is rendering “the correct” result and using the GPU as you intended? (eg I could replace it with a software renderer that did over 20 Hz or sent frames to the cloud for computation, or I pull frames from a video)

We’ll take a look at the source and make sure the entry isn’t playing silly buggers. Anyone who is able to make either of those schemes work would probably get a special prize for technical awesomeness.

3) can the driver make any game-detecting optimisations, eg disabling screen clears knowing they aren’t necessary?

Yes.

4) can modifications be made to the code in the Q3 repo, eg CPU code optimisations or graphics-related changes?

No, I don’t think that would be in the spirit of the contest.

5) how will you judge the “minimum frame rate”? This can be influenced by disk I/O. Will this just time the render completion time?

We will use the instructions for running timedemo four here: http://elinux.org/RPi_Performance

6) do any other applications that use this .so need to work?

No.

7) as this challenge only appears to concern the VC IV 3D subsystem (ie requiring only the delivery of libGLESv1_CM.so and libEGL.so), I’d imagine we’d still need a Rpi-specific binary blob for the board itself? If so, will one be provided that has allows us to hook in our work – or will we really need to be able to boot the boot from scratch using our own self-compiled binary?

The expectation is that you boot with the standard blob and start poking registers yourself from the ARM. It may be that during the course of the contest we (Raspberry Pi) will need to make some modifications to the blob to support things like resetting the v3d.

8) the requirements says “without making use of the capabilities of the blob”. Absolutely none at all? For example, when we want to enable a new graphics layer we can’t use dispmanx and must manually wiggle registers?

This is overly broadly worded. It’s intended to cover using the blob to drive v3d.

9) can we deliver kernel modules or other shared libraries too, to support the required two libraries?

Yes, that’s fine.

Avatar

Useful clarifications, thanks.

Avatar

Eben,
If you ever need “a standard meter” on whether a rendering is close enough:

http://pdiff.sourceforge.net/

Some 10 years ago Dreamworks developed a tool to get a number on “perceptual difference” between a pre-generated key frame and a rendered result. They needed to detect when a rendering farm went of the reservation. The first Shrek DVD was full of funny rendering bloopers with heads dropping though bodies and so on. The tool “pdiff” gives you a single number on the “perceptual difference” between two images, even if they have different resolutions. Credit goes to Tomas Akenine-Möller, phd, author of Real-Time Redenring, who pointed me in the right direction in 2006 when I needed automated testing of “what the eye sees” when I coached agile teams building VR simulators for BAE.

Avatar

So just to doubly clarify – we can (and I suppose should) use dispmanx, as it’s just the libGLESv1_CM.so and libEGL.so that need to be submitted? Given that we can’t modify the Q3 source code, and it uses dispmanx to do the initial setup, right?

Avatar

Would this allow us to use the DSI connector on the Raspberry Pi in any way shape (perhaps by writing a driver)?

Avatar

Well i did hear that the foundation is developing two official dsi displays even before the brodcom announcement !
But i do need a bit confirmation on this.

Avatar

Hold your horses, blog post soon…

Gordon

Avatar

A DSI display available for purchasing is awesome, but I think I’m not the only one hoping for a customizable solution on the software side, in order to get other displays working, too.

Avatar

I think they will be working together hdmi+dsi clone in the begening and later independently

Avatar

Maybe, however I was refering to other DSI displays, other than those sold by the Foundation.
I will buy one when they arrive, but also I will try my best to get other screens working with DSI as well (just because I like having more options).

Avatar

2.5 M means only 10 M to go to beat the C64 (12.5 M sold units)

Avatar

That was from 1982 until 1995, 13 years. OK they were shipping 2M a year for the first 3 years, but there was also a lot less computers in the world back then. Nowadays your mobile phone probably has a CPU with at least 24 million times (1250000 DHRYSTONES/SEC/MHz@700MHz) the number crunching power of a C64’s MOS 6510 (36 DHRYSTONES/SEC).

Avatar

I presume that all entries won’t be judged on whether the sound works in the game? You probably need to clarify that it’s just the graphics that are being judged.

Avatar

Happy Birthday !
Nice present for everyone using the RPi. Still, we have 2 full years and no official display yet; and yes, I’ve seen the video telling the display will come – so any news about release date ? Please hurry up !! :)
Also, will the Broadcom source codes aid the use of the display ?

Avatar

IIRC, they said something like first or second quarter of this year, so come back in July to complain again that the people doing this on a volunteer basis on their own time aren’t working fast enough just for you. In the meantime, there are perfectly usable HDMI displays available from Adafruit, DealExtreme, etc., that you can use for the exact same purposes you would likely use a DSI display.

Avatar

OK, OK, no hard feelings intended here … after all it’s a birthday party !
As for people “aren’t working fast enough just for you” – I’m not working fast enough for me – so I’m not easily satisfied :)
Truth being always in the middle, sorry if I upset anyone, sure was not intended !

Avatar

I have some other questions about using the VC for other applications than games:

Can now the source code for the FFT published some time ago be released?

More general, could somebody provide demo software how to write code for using full capability of the VC SIMD processor for applications involving standard arithmetic operations fixed/floating point?

Would it be possible for a third party like Wolfram, Matlab etc. to use VC for speed up numerical calculations?

Avatar

Liz noted above that there will be an announcement about general-purpose computing on graphics processing units (GPGPU) support in a couple of weeks, which will give us an idea about what will be possible for using the GPU as a numerical computation engine and other non-graphics purposes as it has at least a dozen (16 IIRC) parallel pipelines for doing 32-bit integer operations and an equal number of 80-bit floating-point parallel pipelines, although they’re arranged in sets of four that I need to dig into the just-released docs to fully interpret correctly.

Avatar

Thank you to bring me this to attention, I hope the “couple” of weeks is not more than a couple:).

Getting full command of the SIMD processor pipeline looks to me quite time-consuming and requiring deep expertise. I am very much hoping Raspberry Foundation can offer full help for this. Gaming is one thing but unleashing full numerical potential would bring huge opprotunities for quite serious applications. 24 Gflop computing power cited for the VC is a very respectable number.

Avatar

I can do a little coding, no maybe really only scripting. Years ago (maybe too long ago) I did a little Cobol, punched card format etc. Hey, I even did validation of punch cards – I can still feel the pain of hitting a key when the card, or most probably I, was in error. Later, when I worked for Digital Research (Gary Kildall’s), I was amazed and somewhat in awe of the software engineers debugging DRDOS and Concurrent Dos, the stuff on their screens was totally unfathomable (I was the Accountant). I have never seen an explanation of the architecture of the PC and how all the code actually works, let alone “rules” that have to be obeyed.
Now that we have the Raspberry Pi is there an explanation of the architecture that an interested amateur could comprehend, with examples of how the code all hangs together. Maybe this aspect of the Raspberry Pi has been covered in some articles or books, I haven’t seen any – maybe someone could point me in the right direction. Maybe I could eventually get a comprehension of what this present from Broadcom actually means……

Avatar

Hi Stan – You might know Dan Davis, close friend of Gary at the Naval Postgraduate School and who helped start DR as the PL/1 compiler developer. He was my compiler professor at NPS when I got my MSCS there almost three decades ago (man, how time flies whether or not you’re having fun!). I run Raspberry Jams (enthusiast education gatherings) at the Computer History Museum in Silicon Valley and now the Monterey area and those are great places to learn everything about the Pi from the ground floor. You should start by learning about the Raspbian OS used on the Pi and the Debian Linux OS on which Raspbian is based. BTW, we have brought a 1960 vintage IBM 1401 mainframe back to life at the museum for public demos and you can use a keypunch to make errors on just like in the old days! :D

Avatar

Hi Jim,

I was based in Hungerford UK where I think all O/S development occurred post CP/M. I only visited Monterrey once, unfortunately, I only met up with the Financial Director.
Back to RPi architecture, how does it all hang together as a cohesive unit? I use Linux much like I use Windows, occasionally it is necessary to mess with drivers etc. but all this occurs within a framework of predefined menus and lists. How are all the components hung together? I don’t mean physical circuit board electronics, I mean how does the o/s recognise and handle all the component pieces? Clearly this has all been coded and designed by great minds, I just would love to try to understand how it is done. Maybe this old donkey should stop looking over the fence…

Avatar

So kinda like an indepth documentry in how the pi works,
with complimentary material?

Avatar

I would totally watch/read that!

Avatar

Hi tzj,
Yes, that would be interesting. It could give an over view of all the hardware components and then the “story-line” would commence at the introduction of power i.e all the stages of the firmware boot finally how the O/s, presumably Raspian is caused to load. It’s the code that causes all this that intrigues me. Maybe the highlight would be the appearance of “the blob” – the baddy, with an alternative story-line of the new opensource replacement. Hey, it could be entitled “The Life of Pi” – oh , no….

Avatar

Ah ha!! Just read in the latest Magpi that there is a book coming out in July from Wiley entitled “Learning Computer Architecture with Raspberry Pi” written by Eben Upton (Author), Jeffrey Duntemann (Author), Gareth Halfacree (Author)
I have just reserved a copy..

Avatar

I think i also have that on order. Mmm… if this doesn’t help 100%, the proposed documentry could be used to as you say give an overview and fill in any gaps the book leaves.
It would be like going back to school all over again ‘cept the vhs doesn’t snap half way through!

Avatar

But will the book contain graphics architecture? If it does, Eben’s a very fast author!

Avatar

I suspect that Eben may have known about this recent Broadcom announcement somewhat in advance of most of us ;-)

Avatar

Finally! Another step for more accessible osDev for PI!. Does documentation covers USB? It would be great, since the most common problem with osDev on raspberry is that hard time getting keyboard on your usb working.

Avatar

Have you tried the latest USB driver update in BRANCH=next? That has another fix… Should have keyboards working 100% and bluetooth and stuff working reliably!

Avatar

Wow! This is truly a gamechanger. On the practical side of things, I’m waiting for the GPGPU news with excitement. Also, what does this mean for the implementation of Wayland on the Pi(I find the news extremely relevant), and where are we exactly on that front? Anything new?

Avatar

Great news! Any possibility of setting up some kind of dual or matching crowd-funded bounty for those of us willing to pitch in money instead of time/driver-coding expertise?

Avatar

Fully supporting this idea! Kickstarter-type of campaign to develop libraries for numerical computations unleashing full potential of the VC, possibly interfaced to some widely used public software.packages. One set of target areas could be signal and image/video processing, pattern recognition and computer vision. For running many applications in these areas one does not even need GUI so full power of the VC could be used for computation..

Avatar

screw the Quake III thing, Maybe I now i can write my own vision mixer.

Avatar

Best news ever!

Avatar

<3

Avatar

Which OS will the drivers be available on first? I am looking to use the open source drivers asap so was wondering if anyone had any instructions on how to set up,

Avatar

Most likely raspbian – but someone has to write them first! Won’t take long, with £10,000 up for grabs

Avatar

I bet on Arch.

Avatar

I hope not. ARCH is too much of a PITA for new users.

Raspian would be the way forward – much larger user base, easier to use.

Avatar

Excuse my ignorance, but is there any chance that this will lead to / contribute towards better X desktop performance? In particular, scrolling through wordprocessor documents or web pages?

Avatar

This is what I hope too… really waiting for this!

Avatar

No not really. The Wayland/Weston stuff is the best bet for that I think.

Avatar

Fantasic! Kudos to the Pi team and to Broadcomm.

I’m looking forward to the GPGPG news.

Avatar

Dribble….
Are you just trying to get someone else to port it for you, RPi foundation? :-) Anyway, what if I worked for broadcom? Luckily, I don’t. So it should be fun trying to port.

Avatar

EDIT: Just read competition rules. Forget broadcom.

Avatar

Where can I find the source code for raspbian?

Avatar

Do you mean the kernel, or the entire source code base for the entire distro?

The kernel is on the Raspi github page. The source for the entire distro? Spread over the internet?

Avatar

October 24, 2012

Luc Verhaegen: Isn’t the userland code you just made available the simple shim that passes messages and data back and forth to the huge blob running on the highly proprietary videocore dsp?

liz: No.

Fast-forward, March 1, 2014:

eben: our existing open-source graphics drivers are a thin shim running on the ARM11, which talks to that blob

Avatar

“How do you get people to protect themselves from something they don’t believe in?” – The Blob

… thank’s !
for providing the posibility of an escape !

Avatar

Please compare apple with apples. Note that the graphics drivers are not the entire of the ARM userland code. There is other stuff there as well. The graphics part is indeed a shim, the other parts of userland not so much.

Avatar

Does this mean that the pi can run android and dare i say it, UBUNTU?!?

Avatar

Ubuntu for ARM only runs on ARMv7 (and above) CPUs, RaspberryPi only has an ARMv6 CPU.

Avatar

It’s a shame, I like Debian a lot…but Ubuntu would be even better. Too bad the Pi doesn’t have the proper CPU and enough RAM to run Ubuntu at a satisfactory speed and performance

I still love my Pi though!!!

Avatar

Pity that Ubuntu is so bloated that it requires that much RAM and CPU to run on the Pi…

See what I did there?

Avatar

Ummm, you do realize that Ubuntu is Debian, right? To be more precise, Ubuntu is derivative of Debian, mostly in terms of GUI doo-dads that don’t provide a huge increase in functionality over Debian. Eye candy can become an expensive habit, especially when you get the dentist’s bill for all the extra hardware you need just to make things look “purdy”, as the cowboys say … :lol:

Avatar

Chip used in Raspberry is completely outdated
if one takes the current state-of-the-art but still OK for educational and hobbyist activities. It is interesting to note that Broadcom has a new BCM7445 chip in the same class but hugely more powerful. But would Broadcom dare to release it timely for general public use is very unclear.

Avatar

I know I’m day-dreaming, but I’d love a “Model C” Raspi with a dual-core ARM CPU compatible with Ubuntu….and at least 1GB RAM to run it at an acceptable speed and stability :-)

I wouldn’t mind paying more for a Raspi like that!!

Avatar

Raspberries aren’t the only fruit… ;-)

There certainly are dual-core ARMv7 boards with 1GB of RAM available – but expect to pay much more than the price of a Pi!

Avatar

You need to be aware that the Foundation is a charity run by volunteers, with their work done during off hours. Broadcom has been extremely generous in making the system on a chip (SoC) used in the Pi available at nearly its cost, as these types of devices are normally not made available to the public other than sealed up in a phone, tablet, etc. You generally also don’t get access below an application level to develop software for such devices, certainly not while they’re being used to manufacture consumer products. The companies making these devices (e.g., Broadcom) need to amortize (pay for) the cost needed to develop them, which is well into the tens of millions of dollars, at a minimum.

If you want to use a state-of-the-art SoC with scads of cores, multi-GHz clock speed, RAM addressability of GBs, etc., you’d be spending closer to $100 per device just for the SoC, and that assumes that anyone’s even going to pay attention to a purchase of onesies-twosies, which they’re not. They’re looking for customers who are willing to commit funding up-front for buying devices in quantities of millions of dollars at a shot. We’re all looking forward to you opening your wallet and fronting the cash to do this.

You also have to consider that the sole intended purpose of the Pi is for educational goals, not to produce the hottest (literally, as in thermally hot) piece of hardware on the planet for people who don’t have the discipline to make maximal use of every clock cycle, register, cache, etc., in an SoC. That it can be used for media streaming, video games, etc., is completely coincidental, and if you haven’t heard the saying before, sometimes, “Better is the enemy of good enough.” Device manufacturers have been playing a game for a very long time where they market their products as being “bigger, faster, better” than the last generation without any regard for how the devices can actually be used most efficiently. The result is code bloat, where developers don’t pay any attention to efficiency and economy, which is absolutely crucial in mobile devices.

If you develop software that’s going to constantly be draining the battery with ceaseless cellular, Bluetooth, and WiFi access, GPU-glutting animations/video, inefficient CPU-bound algorithms, and RAM-filling garbage, your app customers aren’t going to give you even minimal ratings, they’re going to flog you virtually. The best way to learn world-class software development is to do it on the oldest hardware that has a chance of being able to handle your application, and if it isn’t then figure out ways to leverage off-system (e.g., Cloud) resources to take some of the load. A lot of people clamor for multiple cores without having a clue as to what to do with them (much less the ability), and even most professionally-developed software rarely does an effective job of best utilizing all of the capabilities of even a single core, let alone multiples.

I have a poster in my classroom that reads, “We have enough Youth, how about a Fountain of Smart?” The students of today are going to have to deal with the upper limits on clock speed, intra/inter-component communication, circuit density, price, etc., during their careers in ways that today’s developers would find distasteful at a minimum, and draconian at worst. The sooner they get used to reality, the better off they will be, especially in being competitive with their counterparts elsewhere in the world.

Avatar

Actually, its not entirely volunteers – there are some paid employees as well, but a lot of stuff is indeed done by volunteers.

As for the Pi chip, although the ARM is slow by recent standards (so write better code..) the GPU is STILL Broadcom’s state of the art, and still competes well in the mobile space. So in effect the source release is for the CURRENT generation of VC GPU. There isn’t a newer one.

Avatar

The BCM7445, although it has more ARM cores, is pretty much the same as the BCM2835 in many respects, but with important stuff removed! (No camera I/F for example)

It would NOT be a good choice for a Raspi.

And I am not sure it’s even in production.

Avatar

Saying that BCM7445 is ‘in many respects’ the same as the BCM2835 is like saying all computers are the same in many respects. Taking aside its very powerful quad-core ARM this chip has full battery of inputs: PCIe, SATA III, USB 3.0, plus, obviously and contrary to what you say, a full digital video capture input. It has the most advanced 4K display, amazing video decoding and transcoding capabilities including HEVC support. Saying that this chip would not make good ‘Raspi’ is just detrimental to Broadcom. In truth this is the most capable chip in the industry, if one would wish it could make a full workstation with 2D display capabilities exceeding the most advanced Intel/AMD processors.

The BCM7445 chip is approaching volume production very soon if not already sampling now. One can see official Linux kernel patches for it already made by Broadcom. The chip would very likely carry an attractive price since it is not targeting high-end smartphones but set-top boxes which are much cheaper.

Thinking about the BCM2835 vs. BCM7475 requires switching to a different mindset, from the trailing edge to the leading edge of the technology. Then one can easily see it is the most future-proof chip available today and with the best price/performance ratio. Competition is left behind it by at least 12-24 months and one can hardly see anybody offering such comprehensive chip.

Avatar

Sorry, I work for Broadcom, and have a detailed spec sheet on that chip. It would NOT make a good Raspi replacement. As much as anything, it is MUCH more expensive than the 2835. Also, looking at that spec, I haven’t found the required camera input yet. I would also debate your claim its on a par with high end Intel/AMD chips.

Are you getting your information from public sources, or do you also work for Broadcom?

Avatar

To avodi misunderstandings:
> As much as anything, it is MUCH
>more expensive than the 2835.

There was no claim the price range is within 2835, that would be nonsense. The claim was it is cheaper and more versatile for the purpose than similar chips used in current high-end mobile devices.

>Also, looking at that spec, I >haven’t found the required >camera input yet.

What is the digital video capture input at the lower left corner of the chip diagram? One can do a full HDMI input with it.

>I would also debate your claim >its on a par with high end >Intel/AMD chips.

Please read carefully. My claim was that *2D display* output capabilites are on par with high-end Intel chips. That is obvious due to full 4K support.
Obviously no such claim was made about computational capabilities of the chip.

With the Linux kernel patches ready for the chip it would be interesting to see if it is able to boot now a full Linux distribution including GUI. Then it would be easy to watch its capabilities.

Avatar

The forum is probably a better place for an extended discussion like this. If nothing else the quotes look prettier :)

cheers,
Clive

Avatar

It does not make much difference for an Ubuntu port. The main thing is that someone needs to rebuild all the packages for armv6. There is a group planning to do this.

http://www.indiegogo.com/projects/a-raspberry-pi-build-cluster-for-ubuntu/x/2831457

Avatar

I’m not a developer, but I do think what you guys are doing is something extremely important. Your moral / financial support for the development of free / Open Source software will benefit all Linux users….and specially Raspberry Pi users like myself and millions more. Thank you!!

Avatar

Question: could the GPGPU future announcement help with fft processing?
I’m thinking of whether offloading signal processing to the graphics core would speed up GnuRadio enough to make it a viable proposition.

Avatar

Did you see the post about GPU accelerated FFT’s a week or two ago?

Avatar

Can they share the code they seemed to wish they could now ?

Avatar

Is it possible to implement OpenCL now?

Avatar

ok, now i get it :)

Avatar

OpenCL may have a port for ARM neon, but that doesn’t mean you have to have a neon to implement it.

Only problem is OpenCL does not actually transfer very well to the functionality of the GPU…

Talk with Rob Bishop who spent a summer trying to understand exactly that, I believe his thoughts at the end were that it wouldn’t work very well because of slow integer performance

Gordon

Avatar

I keep seeing requests to ‘run Android on a Raspberry PI’. Why?

Personally, I think it would be far more fun to get Raspian running on an Android! (or, better, on an Apple – because all Fandroids know that iOS is a hugely inefficient way to shuffle electrons around a PCB – 10 minutes in a microwave is far more efficient, and entertaining)

Mind you – at this rate of growth, Raspian, and the Pi, will soon take over the world.

All hail the Foundation (and a belated hippo bathday to all)

Cheers,
Niall

Avatar

I agree,

I’m not sure why people think it would be a good idea to run Android on the Raspberry Pi. Basically it’s a vehicle for Google’s advertising, I’m happy without it…

Avatar

Netflix..

Avatar

Will this somehow affect the DTS decoding? If not is there any news about when it will be available?
Thannk you.

Avatar

Will the newly released information allow the timings of the composite video output to be modified, or are these set in hardware?. There are a few (but growing number) of vintage tv enthusiasts out there who would love to be able to generate a 405 line TV picture (99uS line period) from a Pi. Sure there’s some MAME people as well who would be interested in non – standard scan rates.

Avatar

Thank You Broadcom!
else
USE::shiney::shim

Good, There are documents and surprise, they are pretty good.
Guess, I’ll just dive right in and be done in no time at all..

“Shiney® shim promises to make things easier for you” ++Hundreds of pages.

Hours pass… “Okay, I have this.”
Day one: “Pfft, where is the bug?”
Day two, “okay… an email will fix this. ”

Specs say:
X ALWAYS does Y if Z condition is met,

Want to bet?

Decades spent in the shadows of “Blobs” each growing to gargantuan proportions, threatening to forever eclipse our understanding in a shimmed
morass of technical, legal and moral “let’s hire a consultant” complexity.

Light that cigar and dance.

“Beware Of The Blob”

https://www.youtube.com/watch?v=eo4V-8GlPpQ
– B. Bacharach/ H. David

Avatar

I think I speak for all when I say…

“Whuh?”

Avatar

How about a forum category for programming the GPU. I would love to see some examples to get started with.

Avatar

The bounty should really be for an in-tree GPL implementation.

Avatar

I’m really looking forward to Android and Raspian with Wayland Weston.

It’s great that Broadcom is being such a great supporter of the Raspberry Pi.

Avatar

This is certainly a positive step by Broadcom which means I will happily buy their products in preference to those manufacturers that are recalcitrant in their attitude to supporting FOSS. Particular praise to the RAS-Pi crew for facilitating this disclosure:)

Nice

Richard

Avatar

Hello,

I was curious if anyone had been actively working on this or if there is a forum thread/wiki I could follow.

Thank you.

Avatar

Can we expect the $10,000 prize winning driver to be released under a 3-clause BSD license too?

Avatar

I think it’s quite funny that there will be a contest and winnings of $10,000 to get Quake III running smooth on a Raspberry ARM architecture… it’s already running amazing on another handy ARM chip the RK3066. The only thing missing is a GPIO which can easily be added with a USB adapter. Check out the link below for a (in my humble opinion) better “mini-arm-computer” that is lacking recognition. Quake3 running smooth as butter, HD video decoding in XBMC and more. $40 and no need to buy a bunch of cables(minus the GPIO)

http://bit.ly/18mtRVm
(OR search homeIO MK808 on google for those affraid of clicking links)

Avatar

The bounty’s not just to get Quake III running on the Raspberry Pi, that’s already been done. It’s to port the Broadcom VideoCore IV open source graphics driver stack to run on Raspberry Pi, and use it to run Quake III at a playable frame rate without requiring the BLOB.

See the competition rules

Avatar

The “competition rule” link is broken… side effect for the new website? :)

Avatar

Has anyone made any progress with this? $10,000 is quite a bit and I’d hope to hear something :)

Avatar

no… more probably because we have a winner :)

http://www.raspberrypi.org/quake-iii-bounty-we-have-a-winner/

Avatar

I’m not particularly big on birthdays/anniversaries/etc. I am, however, a big fan, and small contributor, to open source.

SoOo …

Could somebody fix this page?
The URL for the contest rules is 404‘d.

Thanks ~;-)

Eben Upton

The contest ended some weeks ago.

Avatar

## story of my life
) ds_date=$YESTERDAY
account_offset=${-1:-10,000}
;;

Actually relieved; too old/blind for all this …

Congratulations, indeed, to Simon? If it’s the same fella that asked the very probing Qs about this challenge (for whom I think you provided the As above), then I at least correctly measured him capable/determined, just by the knowledge/experience shown in those few posts. Remarkable.

Thanks for lettin’ me know, and to *everyone* involved (so very happy/proud to see yet another generation so kindly sharin’ their (far greater) skills/knowledge w/ the next ~’-)

Leave a Comment

Comments are closed