Open source drivers are getting pretty good these days. I haven't had any problem with Intel or AMD hardware.
Intel
I hear the old ones are pretty bad, but my G4500HD does everything I need well. Video acceleration could be better though. There isn't a proprietary driver for Intel either, your only choice is open source. The composited 3D desktop in KDE works great on my laptop which has an Intel chip.
AMD/ATi
Right now the older cards are better supported than the new ones. If you could somehow get an x1800 or something from the same generation that would probably be the best. The r300g
driver is getting more development work than r600g
. That's not to say r600g
is bad, in fact it's great! It's just somewhat behind the driver for the older hardware. AMD has a proprietary driver for the new hardware, but in my experience you want to avoid it; it's pretty bad. The hardware covered by r300g
isn't supported by that driver, so the open driver is your only option there. And like the Intel chip I have, my Radeon 4850 runs the composited desktop in KDE well.
At the moment, I wouldn't recommend an HD6000 series. The 6900s have no support at all in the open driver, and the others have basic support. Go for an HD5000 or an HD4000.
Nvidia
They have a really good proprietary driver, but the open driver is struggling along. It's getting better all the time, but Nvidia is doing nothing to help the developers. At least AMD helps out a little bit for their hardware.
The advantage to having an open driver is that it will work out of the box in any distro. If you install Fedora, everything will work including dual screen and 3D. The proprietary ones are painful to setup. Neither of them properly set up my dual screens. It was easier to setup with Nvidia which isn't saying much because the AMD blob was just awful at this. Also, anytime you update the kernel, you have to reinstall the driver. Most distros take care of this if you install the in-repo version, but if you don't it's annoying to boot up one morning and realize you updated the kernel and now X.org doesn't work.
If you aren't planning on playing 3D games, either the Intel or AMD drivers are the best. The AMD driver is more modern than the Intel one, it uses the Gallium3D architecture within Mesa (that's what the g
stands for in r600g
), but they both get the job done.
They run simultaneously, but they don't control the display simultaneously. Typically, the login screen ends up on the first VT, and your desktop on the second; you can try switching back and forth with CtrlAltF1 and CtrlAltF2. You'll find hand-off messages in the logs; for example, in ~/.local/share/xorg/Xorg.1.log
, I see
AIGLX: Suspending AIGLX clients for VT switch
systemd-logind: got pause for ...
when switching away from the VT running that X server, and
systemd-logind: got resume for ...
AIGLX: Resuming AIGLX clients after VT switch
when switching to the VT.
Best Answer
The term "graphics driver" is used to refer to several different things. One of them is a kernel driver. The kernel driver mostly just sets the video mode and facilitates passing data to/from the card. It also usually downloads the firmware into the GPU on the card. The firmware is a program that the GPU itself runs, but unfortunately, graphics vendors only provide it as a binary blob so you can't look at its source code.
Above that you usually have Xorg running, which has its own driver that translates generic X11 or OpenGL drawing calls into commands the card understands, and sends them down to the card to execute. It also may do some of the work itself depending on what commands the gpu does and does not support. In the case of the OpenGL calls, the Direct Rendering Infrastructure allows this part of the driver to actually execute directly in the client application rather than the X server, in order to get acceptable performance. It also allows the driver in the client application to send its commands directly to the gpu, thanks to coordination with and help from Xorg and the kernel driver at startup.
Wayland and Mir are supposed to replace Xorg as a simplified type of display server.
Unity is both a shell ( provides desktop/launcher ) and compositing window manager in one.
GNOME and KDE are desktop environments. They are large projects consisting of many components. The core of them are their respective application toolkits, which are GTK for GNOME and Qt for KDE. This is a library framework that an application is written with and provides the foundation on which everything else is built. Some of the basic services they provide are event and object handling, Windows, basic drawing functions, I/O, and much more.