Raspberry Pi ARM-side GPU drivers open sourced
Eric Rucker (325) 232 posts |
http://www.raspberrypi.org/archives/2221 Now that’s big. Time for IyonixMesa to have VideoCore support added? |
Rick Murray (539) 13851 posts |
I hope it can be the start of a trend (and what a way for Broadcom to put their SoC on the map as a development platform). I hope a revised datasheet will follow. ;-) |
Jeffrey Lee (213) 6048 posts |
Although at a cursory glance I think that repository contains everything we need for a GL driver and some other useful things (e.g. the sources to the tvservice binary so we can change the actual display mode of the monitor), they still seem to be missing a fully BSD licenced version of the VCHIQ sources :( (What’s in that repository is just the sources to the userland library, not the kernel library which does all the real work)
It’ll be a bit of a tricky trend to follow, unless other manufacturers start going down the “fat GPU” approach that Broadcom are using. Remember that none of the CPU graphics drivers actually talk to the graphics hardware directly – they just package up the commands and send them off to the closed-source OS/firmware running on the GPU. |
Eric Rucker (325) 232 posts |
Although there is a GPLed VCHIQ it seems? Meaning there’s two valid approaches: Cleanroom it Also, as far as the SoC being popular for development overall… I’m not certain of it, given how weak the CPU is on that chip. It’s a GPU with an ARM11 taped to it for light duty application work that needs a lot of graphics power. Strap a Cortex-A9 or A15 or two to it, and then we’re talking. |
Jeffrey Lee (213) 6048 posts |
Yes, and that’s what we’re currently using. Downside is that it means we need to softload it during the boot sequence, so some features (sound, hardware pointer) aren’t available until later on. |
Rick Murray (539) 13851 posts |
Funny, looking at the benchmarks, while it gets its backside kicked with the OMAP4, it holds its own fairly well against the OMAP3. [granted, the test case was not OMAP optimised, but then this might be the case in general…]
This is somewhere RISC OS might, with suitable drivers, be good for a media playback platform. RISC OS is really simple, and while this can mean bad things, it also means we don’t suffer the bloat and lethargy of a typical Linux distro; plus it is a lot easier to bang on the hardware under RISC OS (no need to grovel to the kernel). All in all, for a lightweight system to play media files, there could be something here… IF… sufficient access to the GPU is available to allow codecs to be created/ported.
Funny thing is, that may come if the RPi does well enough. I think people were taken aback by the demand, and certainly it seems to me as if the RPi foundation used a end-of-line lower-spec part possibly because it offered enough features without costing too much. The first I heard, Broadcom had no intention of releasing any documentation. Then a sort-of datasheet arrived. Now this.
Isn’t that how GPUs normally work these days? |
Jeffrey Lee (213) 6048 posts |
Perhaps, but the VideoCore is the first one I’ve seen that works at such a high level. Judging by how lightweight that userland repository is, I wouldn’t be surprised if they even have the shader compiler running on the GPU! |
Kuemmel (439) 384 posts |
Would this make my bountry regarding OpenGL hardware support easier (at least on the RPi) compared to the OMAP situation ? |
Eric Rucker (325) 232 posts |
Rick: I’m not disputing that this is a good chip for RISC OS (now it DEFINITELY is a great chip for that), just saying that the CPU portion is rather weak for the wider embedded development (think Linux and the BSDs) that you suggested earlier. |
Steve Pampling (1551) 8172 posts |
I think Rick was rather working on the basis that most embedded systems don’t actually need much of a singing dancing OS and that even Linux is basically major bloat when it comes to driving an ARM core. For the user of an embedded device, who doesn’t see the OS, they would be impressed with the speed of startup, maybe see the ripple of text in the boot and then use the device via the presented GUI. |
Rick Murray (539) 13851 posts |
My PVR, a Neuros OSD running on a TMS320DM320 (~200MHz ARM9 with ~100MHz Cxxxx DSP) contains 16MiB Flash. When the firmware, which is a stripped-down debian plus closed-source codecs/libraries (Ingenient), changed from using NanoX to Qt4 (something to do with it being easier to create custom widgets, I don’t really know Qt4) the firmware overflowed the 16MiB and so Neuros needed to hijack the CF card to set it up as a mounted device for yet more bits of the firmware. I really don’t think Linux is suited for lower-end embedded devices. For a mobile phone, perhaps (although those take an eternity to start up too); but for something simpler where there is less demand for rigorous inter-process protection, running a server class operating system is just a whole heap of overkill. If you’re interested in seeing the OSD’s UI, take a look here: http://www.heyrick.co.uk/blog/index.php?diary=20100411 Oh, and if you think you might like the movie, you’ll find a subtitled version here: http://www.youtube.com/watch?v=lK1dlxeWYxQ Or, if you don’t fancy the entire movie, at least take 10 minutes out of your day to enjoy the epic melee, especially when it turns into complete chaos. But hang around, there’s more to come – http://www.youtube.com/watch?v=lK1dlxeWYxQ&feature=player_detailpage#t=6770s [as for the effeminate bloke in white…uh…too much explaining… he’s The Big Bad] |
Jess Hampshire (158) 865 posts |
I’ve been trying RaspBMC, it plays 1080 content quite happily, although it stutters badly with big files – BD size. I suspect the issue is the USB performance, hopefully this will improve. If RISC OS ever gets this ability, that would be excellent. (and of course we wouldn’t have to worry about files with too big a bandwidth, because they won’t fit on ADFS or FAT32 anyway :) ) Already RISC OS is gread for audio replay. (internet radio especially.) |
patric aristide (434) 418 posts |
Interesting what Eben had to say in reply to comments on Slashdot:
http://hardware.slashdot.org/story/12/10/23/2342201/arm-code-for-raspberry-pi-goes-open-source-video |
Eric Rucker (325) 232 posts |
Actually, looks like there already is a VideoCore 4-based chip with a dual Cortex-A9 strapped to it: http://www.broadcom.com/products/Applications-and-Multimedia-Processors/Tablet-Application-Processors/BCM11311 Edit: Only a single VideoCore 4 core, though, so less graphics capability than the Pi. |
Steve Pampling (1551) 8172 posts |
I think I said elsewhere – I think the mobile phones have the wrong OS. |
nemo (145) 2556 posts |
A number. None of which would be RISC OS. Also, a less enthusiastic response. |
Rick Murray (539) 13851 posts |
Not RISC OS if that’s what you are thinking. RISC OS only really has two modes – user and supervisor. Modules that belong in userland load as supervisor. Memory protection and interprocess control is minimal. It suffices for our little OS but for a phone you want it all locked up solid. It wouldn’t be acceptable for an OS to trash itself on an errant task. I could write a module to intercept and log keypresses. It will load and run and have full run of the system with nothing saying “no!”. If I make an error, the OS won’t kill the module, RISC OS will instantly die (like those times I call a SWI in SVC mode and forget to stack LR!). |
Trevor Johnson (329) 1645 posts |
Is the recently announced VideoCore IV source release going to be much use to the RISC OS work (not exactly the same chip)? |
Rick Murray (539) 13851 posts |
The sources mightn’t be for the same chip – but the doc is, isn’t it? Is this the first publicly documented ARM GPU? If so – it’s a good step to take. Incomplete, but I suspect that they’re starting to get the idea of why documentation is a Good Thing. Here’s hoping for the Pi’s third birthday, Broadcom will put together a TI-like datasheet for the chip. There’s just so much missing from the current one. |
Jeffrey Lee (213) 6048 posts |
Interesting! There are some deficiencies with the current GPU firmware which we could probably fix if we used custom builds of it. E.g. we could get a better VSync interrupt than the one that’s currently offered; we could get rid of (or better understand) the points at which the mailbox interface will block when performing some framebuffer operations; we could rework the audio interface so that it works better with the way RISC OS does things; etc. |
Jon Abbott (1421) 2651 posts |
From a quick read, it looks like it’s the 3D side of the GPU that’s been documented, not the sort of low level info we’d need to bypass the blob or improve the RISC OS HAL. It does sound like they’ll be releasing more documentation in the future though, so there’s hope yet. |
Alex Farlie (1992) 44 posts |
@Rick Murray (concerning Enhanced Pi) : “Pion” maybe? XD? |