Another annual tradition of ours besides running a Linux Graphics Survey is to provide a "year in review" analysis of the ATI and NVIDIA Linux drivers with their respective graphics driver releases from the past year in terms of both feature improvements and how their quantitative performance has changed. We have been doing these annual ATI and NVIDIA yearly reviews going back to 2005, but now it's time to share our thoughts and numbers for 2009. We are beginning with our NVIDIA Linux 2009 Year In Review.
NVIDIA delivered a horde of Linux driver updates in 2009. AMD puts out twelve driver releases per year (sometimes 13 or 14 though if there is a hot-fix release) as they deliver a new driver monthly and that is that, but this year for NVIDIA and Linux they delivered a stunning 46 driver releases! There in fact might be even more than 46, but that is what our count for them is at in 2009. In fact, if you count their OpenCL driver releases they made available separately or the Linux drivers from their registered developer area, the count should exceed 50. In comparison, for 2008 there were just about 29 driver releases. This count of 46 drivers for the year is largely made up of NVIDIA beta driver releases, which they have been providing quite frequently to the Linux community, along with a few updates to the three legacy graphics drivers for their vintage hardware.
NVIDIA had ended out 2008 with the NVIDIA 180.xx driver series while in 2009 we saw a few updates to this release stream followed by the introduction of the 185.xx and 190.xx drivers, which were the major release cycles to introduce new prominent features. The NVIDIA 195.xx driver series is currently in public beta but it will likely not exit beta before the end of this year.
The NVIDIA driver releases in 2009 delivered a whole lot of bug-fixes and other maintenance work, but there was also for a number of new features. Among the features that were introduced in 2009 NVIDIA Linux driver releases include support for RG render buffers in OpenGL 3.0, OpenGL 3.0 floating-point depth buffers, support for the latest versions of NVIDIA CUDA, improved DisplayPort monitor support, support for OpenGL 3.2, OpenCL, support for monitoring the GPU's fan speed, support for NVIDIA Quadro SDI Capture, new hardware support, and many VDPAU improvements.
The new hardware support in NVIDIA's Linux driver has emerged for the new graphics cards they released throughout the year, particularly for the GeForce GT 100 and GT/GTX 200 series, but some PCI IDs for some missing older GeForce graphics cards were added in too. This year the Video Decode and Presentation API for Unix that NVIDIA introduced just over a year ago has been a focal point of their driver work. In almost every driver release, there were VDPAU fixes / improvements from improved VC-1 decoding on 64-bit platforms to improved performance of the VDPAU noise reduction algorithm to VDPAU with supported hardware now can decode MPEG-4 Part 2, DivX 4, and DivX 5.
NVIDIA has really made VDPAU the best video acceleration/decoding method for Linux systems. NVIDIA is also pushing it beyond just making it a video API for them, but adding DRI2 support for VDPAU and releasing a standalone VDPAU library so that other Linux drivers will hopefully adopt VDPAU. This video API is widely adopted amongst Linux multimedia programs and it is working quite well, which is in starch contrast to the mess that is known as AMD's XvBA.
Simple NVIDIA driver fixes this year were scattered all over the board from addressing issues with Plasma in KDE 4.x to fixing up some GPU memory problems that was present in the 180.xx series to cleaning up many other areas of this binary-only driver. Those interested in NVIDIA may also want to check out our interview with NVIDIA's Andy Ritger about Linux from this October.
With our selection of graphics tests this year for looking at the driver performance taking nearly all day to run, it's simply not possible to benchmark all ~50 driver releases from NVIDIA this year... We would be running benchmarks for about a month! Instead what we have done is tested one driver out of every major release series this year -- 180.xx, 185.xx, 190.xx, and 195.xx. The drivers were 180.44, 185.18.14, 190.42, and 195.22.
Our test system included an Intel Core 2 Duo E8400 processor clocked at 3.86GHz, a Gigabyte EP45T-DS3R, 2GB of DDR3 system memory, a 160GB Western Digital 160GB Serial ATA hard drive, and a NVIDIA GeForce 8600GTS 256MB graphics card. The GeForce 8600GTS was used considering it has been supported for some time now. Originally, we planned on using a GeForce 9800GT or 9800GTX, but with the 180.44 and 185.18.14 drivers when starting the X Server we would be stuck with a blank screen using either of these GeForce 9 graphics cards in this system configuration. Staying the same on the software side was Ubuntu 9.04 with the Linux 2.6.28 (x86_64) kernel and X Server 1.6.0.
Using the Phoronix Test Suite our tests included 1080p H.264 video playback, Warsow, Nexuiz, VDrift, Quake 4, Enemy Territory: Quake Wars Demo, Lightsmark, Unigine Sanctuary, Unigine Tropics, and the VDrift FPS Monitor. Now let us see how NVIDIA's Linux driver performance has changed over the year.