Which graphics driver set is better to test in the long run?

As one of the Ubuntu X maintainers I can say: testing on both the open-source and proprietary drivers is valuable; we have lots of users of both, and it's important the Unity runs well on both the free stack and the proprietary stack.

However, if you want your testing to have the biggest impact, testing the free stack would be the way to go - at least for AMD cards.

The open-source radeon driver has a reasonable set of developers - it's not large and can always do with more, but it's supported by AMD. Barring the influx of hundreds of full-time developers these drivers won't achieve the same performance as fglrx, but it's entirely possible they'll achieve 90-95% of the performance; it's the last couple of percent that's extremely expensive.

They're also much easier to improve - because they're open-source, we have visibility into fixes and can much more easily justify fixing bugs in stable releases. With the fglrx driver we just get a code-dump mixing features and fixes, with unknown regression potential. This makes it difficult for us to update the proprietary drivers in a stable release.

Finally, there's more prospect of improvement for radeon than for fglrx. Radeon developers care about the whole desktop stack, fglrx is largely targetted at workstation users.

For nouveau the answer is a bit murkier. There's still more prospect of improvements in nouveau than nvidia - again, nvidia is largely targetted at the workstation market - but nouveau has a harder time making progress than radeon, as they additionally need to reverse-engineer everything.

All this applies mostly to bugs rather than performance. It's generally harder to generate a good performance bug than it is to generate a good crash or incorrect rendering bug. Rendering and crash bugs are generally isolated to a small section of code, whereas performance problems generally involve a whole stack of code. Where you find isolated performance problems they can be worthwhile to report, but that's not the common case.

In short, performance problems generally require active effort to identify - you're unlikely to stumble across an actionable performance problem. Bugs - both crashers and misrendering - you can easily identify during normal use.


If you want to help contributing to the further development and support of drivers for Ubuntu, assigning, supporting and contributing for the fixing of bugs on both versions is the way to go. Both are important, but you need to differentiate between what is really in your hands.

Closed driver means just that, it's closed. You can say that Unity is broken because of the closed driver, but in the end, if the driver does not work, there is not much to do. Testing is done on the official releases, but it does not mean it will work for everyone.

I have to say I do not believe that the open-source driver's performance will ever be as good as the closed driver, but talking about Ubuntu and Linux, we want to have at least the alternative to have our hardware running under minimum conditions with an open-source driver.

We want to make sure that, given the option, a user will be able to run Unity without many glitches on the closed-source driver, but most importantly is that an open-source, well-built and stable driver is available.

With the closed driver, you can open bugs, complaints, support others in reporting data to fix any issues, but in the end, it will be the builder's responsibility to lay the path for the driver's development.

On the other hand, the closed driver is largely supported, bugs are taken more directly serious, development is done but also bug fixing is implemented on case by case situation. The open-source community works hard for it to work as good as it can get and with as less issues as possible.

Your time is valuable reporting issues in Unity running with the closed driver, but IMHO, the open-source driver deserves it much more and you will get more value for your effort supporting it.