If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Raspberry Pi GPU Driver Turns Out To Be Crap

Phoronix: Raspberry Pi GPU Driver Turns Out To Be Crap

While it looked hopeful at first with today's announcement of a fully open-source graphics stack for the Broadcom VideoCore found in the popular Raspberry Pi development board, upon closer examination it's actually not that good...

It may be below somebody's expectations, but this is still the best what we have for ARM hardware at the moment. That's a major progress already. Let's see.

Are there kernel blobs causing big pain upgrading kernels or causing hard to debug stability issues? - No
Are there userland blobs which cause serious problems when changing ABI (softfp/hardfp) or implementing window system integration? - No

Basically almost everyone is already using some hardware components driven by some sort of closed source firmware. Suddenly ganging on Raspberry Pi GPU is a bit hypocritical. I'm more worried about the memory sharing between GPU and CPU and whether the GPU is potentially able to cause memory corruption or stability issues. This would be very interesting to clarify.

Another thing to mention is this code drop will directly help a lot of people. Many people were having trouble porting other OS's to the pi, that should (mostly) be gone now. RiscOS will now be ported, and the Android people said they will now be able to port Android 4.0/4.1 WITH graphics acceleration.

And to top it off, it will now make it easier for Simon to develop his X acceleration driver, which will make the Raspberry Pi's desktop much smoother and a bit faster. Not only that, but it will also allow hexxeh(Chrome browser and ChromeOS developer) to get hardware accel working there too. Which means Chrome browser will be way faster, and finally support HTML5 video(youtube) AND WebGL!

It may be below somebody's expectations, but this is still the best what we have for ARM hardware at the moment. That's a major progress already. Let's see.

Are there kernel blobs causing big pain upgrading kernels or causing hard to debug stability issues? - No
Are there userland blobs which cause serious problems when changing ABI (softfp/hardfp) or implementing window system integration? - No

Basically almost everyone is already using some hardware components driven by some sort of closed source firmware. Suddenly ganging on Raspberry Pi GPU is a bit hypocritical. I'm more worried about the memory sharing between GPU and CPU and whether the GPU is potentially able to cause memory corruption or stability issues. This would be very interesting to clarify.

keep striving for mediocre then. I'm being pragmatic about things, at some point when you make an OS you have to ask can you support this for someone who can't. I don't strive to be RMS, I generally just strive to make sure anything that users get from the kernel or distro is something that can be supported.

This isn't useful in that if someone finds major rendering issues in their GL games, it can't be fixed by anyone except broadcom, why the hell would I want to inflict that on a bunch of users?

I don't have black/white view of firmware, but if the firmware/software divide is firmly on the firmware side, its a bad design decision for Linux to care about it. Manufacturers can continue doing what they want, but its of no benefit to the Linux ecosystem.

The rpi being ancient armv6 doesn't help it much atall. Movement is very slow on the mali front, otherwise the allwinner a10 and the cubieboard would be gaining very quick public momentum. Time isn't friendly to any of these socs as they are getting rapidly outpaced by multi core cortex a9s.

it is still progress. also its seems to be the openest arm graphics chipset. its also nice to see movement coming from broadcom, who are pretty low in most linux users preferred vendor list due to their wireless cards.

there is no black and white in drivers and firmware. no easy place to draw the line on what needs to or doesn't need to be open to get a seal of approval.
if issue is about having only open code running on your CPU, then this is good progress.
if you want anything that can be modified to be open (RMS rules), then this makes no difference until the firmware is open (unless you burn the firmware to a ROM to make it 'hardware').
if its about ability to fix bugs, this probably makes life better, but does not solve everything. (what about hardware bugs?)

i'd love to see arm chips with an epiphany as the GPU. you could just run llvmpipe on it and everyone would be happy. (apart from the folk who want to see the asic verilog)

it is still progress. also its seems to be the openest arm graphics chipset. its also nice to see movement coming from broadcom, who are pretty low in most linux users preferred vendor list due to their wireless cards.

there is no black and white in drivers and firmware. no easy place to draw the line on what needs to or doesn't need to be open to get a seal of approval.
if issue is about having only open code running on your CPU, then this is good progress.
if you want anything that can be modified to be open (RMS rules), then this makes no difference until the firmware is open (unless you burn the firmware to a ROM to make it 'hardware').
if its about ability to fix bugs, this probably makes life better, but does not solve everything. (what about hardware bugs?)

i'd love to see arm chips with an epiphany as the GPU. you could just run llvmpipe on it and everyone would be happy. (apart from the folk who want to see the asic verilog)

Its certainly the most API/ABI friendly one, but really its not worthy of a major press release claiming some sort of new found openness. The whole thing was done to make a big press splash and watch people fall for it. Broadcom haven't opened anything that wouldn't have taken more than a few hours for someone to develop. Its a shim, yes its technically more open, but still a long way from something I would ever want to ship or support.

The thing is in x86 land, your CPU is a separate device, what if I had a quad-core ARM with the kernel one two cores and the secret GPU on the other two, blurring the line a lot more. Yes its blurry, but the answer generally lies in whats supportable and workable, and IMNSHO this is on the wrong side.

The thing is in x86 land, your CPU is a separate device, what if I had a quad-core ARM with the kernel one two cores and the secret GPU on the other two, blurring the line a lot more. Yes its blurry, but the answer generally lies in whats supportable and workable, and IMNSHO this is on the wrong side.

If the memory is shared between these cores then it's clearly a hell. But if there is a clear separation between system memory and video memory (enforced by a relatively simple MMU setup or by some sort of hardware firewall) and GPU can't corrupt system memory when it crashes or misbehaves, then we don't care much about the GPU firmware crashing in its own sandbox. The question is about the robustness of this whole setup, and I'm curious to learn more details.