Wandering Thoughts archives

2010-09-22

The mysteries of video cards for Linux

One of the frustrating things about putting together a Linux machine is just how much specialized knowledge you need in order to do a decent job of it. Today I'm going to pick on video cards, partly because it's an area that I sort of follow so I actually know a bit about it.

Suppose that you want to spec out a new Linux machine, and you insist on using open source video drivers instead of being willing to live with proprietary binary drivers. The leading graphics cards contenders are ATI (now AMD), nVidia (still independent so far), and Intel's integrated graphics (if you get a motherboard with a suitable onboard chipset).

(At one point ATI was considered the best open source choice, then Intel surged ahead until they stumbled with the 'Poulsbo' mess, and now who knows. nVidia seems to be continuing its stance as basically open source hostile.)

You will search in vain for an easily located page on any widely used Linux distribution's website that says what the current best or well supported video cards are, or gives you any sort of feature tradeoff for different sorts of cards. Instead you are left to assemble this information on your own, and it's not simple.

There are at least three areas of driver support that have historically mattered: basic (2D) graphics capabilities, '3D' hardware acceleration, and various flavours of Xvideo (aka Xv). Some degree of '3D' hardware acceleration has mattered not just for 3D applications with OpenGL but also for a number of increasingly widely used graphics effects like alpha-blending (and Compiz and related desktop effects); however, it now may be included in the X server's EXA or XAA hardware acceleration framework, so that a card that has full EXA support would be good enough. At one point Xvideo support was essential in order to get good playback of video, but I don't know if that's still true in this era of fast machines and content that is already as big as many people's screens.

(The manual pages and websites for common video players are no help; many are hysterically out of date as far as X Windows issues go.)

There is a confusing matrix of what drivers support what features on what hardware, and what answers you get depend on where you check; for example, the radeon manual page on my Fedora 13 machine lists a different (and more limited) set of features than the Radeon feature matrix. The nVidia driver manpages don't even list Xvideo support, but I happen to know that it's available on some nVidia hardware.

In order to get a good answer, you need to know more here than I do, because what I've written down here is more questions than answers. You need to know not just what Xvideo is, but how important it is on modern machines and for various video players and sorts of content. You need to know something about how Glib and Qt implement their graphics effects, how much hardware support is needed to make them fast, and how that support is implemented in the X server. And, for that matter, how much OpenGL is quietly used by any programs that you care about (given that web browsers are already talking about GPU accelerated rendering, this may soon be more important than you think).

(Also, you will probably become quite good at decoding between chipset names and marketing names for various graphics chipsets. Wikipedia may help.)

All of this is frustrating; assembling this specialized knowledge is a bunch of work, you use it once, and then it rapidly goes obsolete (like all PC hardware knowledge, it has a half life measured in months). But you have to do this in order to pick a decently supported graphics card.

(Well, you probably have to.)

Sidebar: resources for doing this

linux/VideoCardMysteries written at 02:56:01; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.