My view of the state of graphics cards for Linux (in fall 2011)

October 9, 2011

I sort of alluded to the state of graphics cards for Linux in passing in my hardware spec list, so I want to write it down explicitly in more length (if only so that I can point to this later).

There are at the moment three main sources of decent PC graphics: Intel, nVidia, and ATI (now part of AMD). ATI and nVidia make both graphics cards and integrated graphics chipsets; Intel only makes integrated graphics (very integrated these days, as they are now part of the CPU die).

With one exception Intel has been a good to excellent open source supporter for graphics drivers, with well known X developers being paid to work on drivers and general X improvements, good relations with upstream, and so on. They seem to be perhaps the most genuinely open source friendly company in graphics today. The two drawbacks of Intel are that they are more or less entry level performance and they only do integrated graphics.

(The open sourcing exception is the infamous 'Poulsbo' chipset, aka 'GMA 500'. I'm not going to try to summarize the situation there, but let's just say that it was and is not really open source friendly. See here for one reference.)

ATI is fairly open source friendly and the drivers for their hardware are developed with their support and with documentation and code that they contribute. However, my impression is that they are not putting the kind of support and resources into it that Intel is (perhaps partly because they have their own binary driver effort to work on). As a result, not all features of their hardware (especially recent hardware) are supported in the open source drivers and most of the driver work is done by outside people on uncertain 'as available' schedules.

(See here, here, and here for information.)

nVidia is not friendly to open source at all. What open source drivers exist for nVidia hardware are basically all reverse engineered; nVidia's own open source code contributions appear to have deliberately obfuscated (and unmaintainable) code. My impression is that most of the advanced features of nVidia cards are generally not supported in open source drivers at all.

(See a Phoronix story from 2010 on this, as well as the nouveau driver wiki.)

There probably are nVidia cards where the open source drivers have decent support for all of the graphics things that I care about. However, I simply refuse to buy graphics hardware from a company that is as hostile to open source as nVidia is (at least unless I have no choice). This leaves me with a choice of ATI or Intel. I have somewhat of a bias towards Intel, but ATI is the only one of the two that will actually sell me separate graphics cards (and I can get higher performing, more featureful ones if I want). Hence the ATI based card in my planned new home machine.

How things work with either ATI or nVidia if you use their closed source binary drivers is irrelevant to me; I don't use binary drivers for graphics cards for any number of reasons. A large part of it is that I don't need features and (potential) performance badly enough to trade system stability, freedom of choice, ease of upgrades, and so on for them. As a result, I have no idea which one of ATI and nVidia either work better or perform better when using their binary drivers.

(More references for open source video driver stuff are back in an earlier entry on video cards.)

Sidebar: the real drawback of integrated graphics (so far)

The real drawback of integrated graphics for me is not the performance; it is that support for them is up to the whims of the specific motherboard you're looking at and even the chipset it uses. This adds a significant extra constraint when selecting a motherboard that is not there when you look only at graphics cards.

Thus, my current attitude towards integrated graphics is that I'm going to ignore them when planning machines. I'll pick motherboards and other parts based on the assumption that I'll need a graphics card, and if it turns out that my motherboard choice also has usable integrated graphics, well, I win modestly. However I don't expect to this to happen very often, as most motherboards don't seem to bring out the integrated graphics even when they're present and supported by the underlying chipset.

(From one perspective this is not too surprising. Many of these motherboards are aimed at people who will never consider using the integrated graphics, which makes the extra stuff for bringing out the integrated video a pure cost with no benefit (if nothing else, you need connectors and they take up space). Motherboard makers are very good at trimming costs.)


Comments on this page:

From 31.107.140.104 at 2011-10-09 11:54:54:

Matrox also make graphics cards with good Linux support in dual-headed environments.

By cks at 2011-10-11 12:19:47:

Matrox is in the same 'not friendly to open source' camp as nVidia is, and their products appear to be significantly behind the times on top of that. That there are open source drivers for the rather old and limited Matrox G550 doesn't change this.

I personally find this a pity because I remember the old days. There was a time when Matrox was the best choice for workstation-style Unix machines and Matrox itself was open source friendly; my early Linux machines were all Matrox and they worked nicely. But that Matrox is long gone.

(I think that that was a terrible mistake for several reasons, but Matrox has made their decisions.)

Written on 09 October 2011.
« My new Linux machine for fall 2011 (planned)
Arranging scopes for for loops »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Oct 9 02:58:57 2011
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.