While the BFS scheduler is getting ready to celebrate its second birthday, in just three weeks AMD's open-source Radeon graphics driver strategy for Linux will be turning four years old . . . which has ended up being a game-changer in the Linux world. AMD continues to support open-source hardware enablement on their latest graphics processors and recently even hired more developers to work on the code and documentation. How far have they come though in four years?

If you need all features of the hardware and well performing drivers you still have to choose the NVidia closed source drivers.

Your statement is under serious challenge right now.

The closed source drivers (either those from nVidia or fglrx from AMD/ATI) do not implement either Kernel Mode Setting (KMS) or graphics memory management in the kernel. This precludes them from working with Wayland.

Then of course there is the perennial problem that proprietary drivers do not update with kernel updates, so a new kernel breaks these drivers.

The features currently covered by open source radeon drivers (for AMD/ATI GPUs) are tracked on this page:

This is updating rapidly. Even video decode is happening, even though AMD/ATI did not release programming specifications for UVD, so the drivers are using the 3D engine instead. This will bring video decode acceleration even to AMD GPUs which do not have a dedicated hardware video decode capability.

BTW, there is a Google Summer of Code project to implement a hardware video decoder for WebM using the 3D engine. This project will bring hardware video decoding for WebM video even to GPUs which do not have a dedicated hardware decoder for that codec.

Tuning for for performance of the open source drivers has not really been undertaken in earnest yet, as the final pieces of functionality are still being worked on. Even so, if you had looked into it a few months ago, you would have seen that performance was about 60% of that of the closed source driver (fglrx). Right now it is perhaps 80%. In a few months time ...

In a few months time it is likely that the radeon open source Gallium3D drivers will overtake the closed source driver fglrx for performance. OpenGL 3 compliance will be reached, and OgpenGL 4.x work will be underway. The open source radeon driver is a part of the kernel, and it updates automatically and seamlessly with Xserver updates and kernel updates. Running the new Wayland graphics server is not a problem at all.

When this all occurs, IMO your statement will be well and truly overtaken by events.

That's non-issue for at least a couple of years to come. Perhaps even longer.

If NVidia really cares about the general purpose desktop market (that is not enterprise and not mobile, where most of money are coming from) they have plenty of time to produce their own mode-setting stack and a custom version of Wayland.

Although, I guess, they will simply continue to ignore developments in the kernel land the way they are doing it today. After all workstations will continue to use X for a decade or so and mobile devices already use some custom graphics stacks (Wayland could potentially get some foothold there but their licensing policy might be an issue).

That's non-issue for at least a couple of years to come. Perhaps even longer. If NVidia really cares about the general purpose desktop market (that is not enterprise and not mobile, where most of money are coming from) they have plenty of time to produce their own mode-setting stack and a custom version of Wayland. Although, I guess, they will simply continue to ignore developments in the kernel land the way they are doing it today. After all workstations will continue to use X for a decade or so and mobile devices already use some custom graphics stacks (Wayland could potentially get some foothold there but their licensing policy might be an issue). "

It won't be long before the open source AMD/ATI drivers deliver the same kind of GPU performance-per-hardware-dollar (or better) as closed source nVidia drivers. Already this point has been passed for some of the older GPUs (for which AMD/ATI released the programming specifications first, some four years ago).

When that point is reached for newer GPUs also, there will be absolutely no reason at all to get nVidia hardware for a machine intended to run Linux. To do so would be madness, regardless of any intent to run Wayland or not.

Even if nVidia finally release programming specifications for nVida GPUs today, as AMD/ATI began to do up to four years ago, it is too late ... it will still take the Nouveau open source project a number of years to catch up with other open source drivers.

For low-end inexpensive graphics, use Intel. For low-power-reasonable-performance graphics, use AMD Fusion APUs. For highest-performance graphics, use ATI/AMD graphics cards. This is clearly the way to go for the future. We are almost unequivocally at this point already. If you don't run games, it could be argued that we passed that point some time ago.

I'm not sure why you believe that the open source driver will overtake the closed-source one in a few months time. It's really hard work to get that performance out, and I really doubt the Linux driver team has the same resources as the Windows driver team at AMD.

Btw, it's not 80% now on new cards, it's still closer to 50-60% I think. The 80% figure is relevant for cards that are about 6-7 years old, as far as I can tell.

I'm not sure why you believe that the open source driver will overtake the closed-source one in a few months time. It's really hard work to get that performance out, and I really doubt the Linux driver team has the same resources as the Windows driver team at AMD. Btw, it's not 80% now on new cards, it's still closer to 50-60% I think. The 80% figure is relevant for cards that are about 6-7 years old, as far as I can tell.

The programming specification documents that AMD/ATI released are here:

Note the dates. The documents for the older cards were released (~ early 2008) about a year before the documents for the newer cards (~ early 2009). There is a direct correspondence to the performance, in that there is better performance (relative to closed source driver for the same card) for those older cards where the open source developers have had a year longer to work on the drivers.

That is the first point. Given the same amount of time, it would be reasonable to expect a similar improvement for newer cards as we see now for the older cards. In fact, having gone through the process once for the older cards, the still-to-be-done performance fine tuning for the newer cards might even happen quicker.

The second point is that closed source drivers are developed for Windows. The majority of this code is then re-used for Linux, with a small open source wrapper program to interface to the different kernel. The drivers are optimised for Windows. Because of that fact, and also the fact that the closed source drivers require an extra "adapter" layer, it is reasonable to expect that eventually the open source drivers will catch up, given that they are tuned for Linux.

Apart from the development going on at Xorg, AMD itself has been hiring new open source developers of late.

Then of course there is the perennial problem that proprietary drivers do not update with kernel updates, so a new kernel breaks these drivers.

If only they should make 1 way for drivers to interact with the kernel and keep it that way between versions. That way you don't have to spend a lot of hours to keep drivers working, but you can use that time to make them better.
To keep options open for future functionality they could ask drivers to tell how they want to interact with the kernel by a version number or something like that.