I haven't looked into the current state of linux support of AMD and nvidia for a long while but it's that time again, I need a new graphics card.
Yes, the information is out there, waiting to be read but it's not always easy to tell outdated from current information. So, if anyone would be so nice to sum up the current state of things that would be really cool.
Some important points for me are the ability to use multiple monitors (preferably 3), h264 acceleration, stability, general gaming and compiz performance and wow support.
Here's what I know:
Binary driver is stable, fast and compatible with newer kernels and xorgs. You have OpenGL 3.2 support and VC-1, H.264 and WMV9 acceleration through VDPAU, supported by ffmpeg, mplayer, mythtv, xine and so on. Currently no NVIDIA card has support for 3 monitors.
There's also an open source driver, nouveau, which provides KMS and full xrandr support (while the binary driver doesn't let you configure every output separately), but only basic 3d acceleration and currently no video decoding in hardware. However, it is progressing quite fast and it uses Gallium3d, which means it will support svg acceleration and so on.
I've never used fglrx, the proprietary driver. It should provide full 3d support, 2d (not so fast), and experimental video acceleration. It usuallly takes several months to support latest kernels or xorgs. Last cards (Evergreen) support 3 monitors. The open source driver (radeon) provides fast and stable 2d acceleration, good 3d up to r700 (no evergreen yet), KMS and xrandr but currently no video acceleration besides xv.
Originally Posted by vroosh
Some more information (cannot edit previous post): neither the NVIDIA or ATI proprietary driver support KMS (licensing problems), and the open source radeon driver is progressing very fast thanks to AMD specs. There's also a Gallium3d driver for older ATI cards and one (still experimental) for newer ones (up to evergreen).
multi-GPU solutions on linux are risky at best, so the only sensible way to go about three monitors are:
- ATI HD 5xxx (evergreen), which has three outputs
- a Matrox Dual- or TripleHead2Go, basically a DVI splitter
In short: Modern hardware, low power consumption, three outputs, suboptimal driver situation.
Using fglrx, there's some experimental video acceleration (meaning it's not officially supported), there's also no official eyefinity support yet (which means that 3 monitors may or may not work yet, I haven't tested).
Both issues should be fixed in an upcoming driver release, but not right now.
For me, fglrx has been quite stable, games work fine, with one exception: games on wine. 3D apps on Wine + fglrx doesn't mix. With Guild Wars, there's inevitably a crash after an hour or two of gaming.
The OS drivers are promising, but don't even support 2D acceleration on evergreen yet, much less 3D. If you care about OS drivers, ATI will get there sooner than nouveau (due to official specs and work done by ATI) - but both will take a while due to a massive reorganisation of the linux graphics stack (KMS, DRI2, Gallium3D, ...).
TripleHead2Go + nvidia
Allows you to get three monitors on a GPU with only one or two outputs. Combined with an nvidia GPU, the drivers work well with wine and there's VDPAU for video acceleration.
Unfortunately you'll be paying quite a bit for a 2-year-old GPU that's been relabeled several times and the TripleHead2Go isn't cheap, either. You'll also need to do some manual configuration, since the GPU thinks there's only two monitors (search for posts from JaXXoN on the nvnews.net forums about that). That'll only work good if you're always using all three monitors at their native resolution. Switching off a monitor or changing resolutions (for example to run games) will be trouble.
Again, there's OS drivers (nouveau), but there's neither video acceleration nor good 3D acceleration right now.
As you can see, there's no good solution for all of your wishes. Pick your poison.
What's the current plan for Evergreen and the free drivers?
Will it come to Mesa classic, gallium, or both?
2D stuff (EXA, randr) will probably work with the classic Mesa stack.
The 3D will probably come together with the r600g driver, I don't think that anyone will bother with a classic Mesa implementation.
As for the original question, both nVidia and ATi have both closed-source binary drivers and free drivers.
In terms of closed-source drivers, the nVidia ones are better and quicker to support the latest kernels and X versions, but the ATi ones are also quite complete and very fast. Since nVidia has had a significant head start, many things work better with their drivers. Both support hardware decoding, but it's more mature with the nVidia drivers.
In terms of open-source drivers, ATi is ahead, they are sponsoring several developers and releasing almost all documentation for all their chips. There is kernel modesetting, DRI2, stable OpenGL 2 acceleration, with GLSL and one of the best 2D experiences out there. Dynamic powersaving is coming with the next linux kernel. In my experience, these drivers offer an extremely stable and comfortable experience, though the 3D persormance is considerably worse than with the binary driver (not as many optimisations yet). Compiz, video (XVideo, scaling, etc, not h264 decoding), VT switching, and regular desktop things (multiple GL apps on a rotating cube, etc) are all excellent.
nVidia is not sponsoring open drivers and not releasing any specs. Still the nouveau team has made progress through reverse-engineering and have initial Gallium3D-based 3D support for most chipsets. This is a possible alternative to the binary drivers, but they will take time to mature. No powersaving in sight.
EDIT: All of this applies up to the HD4xxx generation. The latest Evergreen cards (r800+) are not supported by the open drivers at this time (other than basic unaccelerated 2d).
They work with the binary ATi driver.
We still plan to add basic Evergreen support to the classic Mesa driver, and that work has already started internally. If the 600g driver were to make miraculous progress then we would probably jump across, but I expect we will have Evergreen support in the classic driver well before 600g is ready for everyday use.
The obvious question is "would it speed things up if Evergreen work was done only in 600g ?" - my current thinking is "not really".
Cool, looking at how r600 classic is right now. Could you throw an estimate on when will r800 be at the same level r600 is now?
That's roughly the point when to buy one
Right now the range of possible answers is too wide, eg maybe between 2 and 8 months.
Ask again in a couple of weeks, OK ? We should know more on both the technical and IP fronts by then.