Nouveau: A First Look
Nouveau is a community project that is working on producing open-source 3D display drivers for NVIDIA graphics cards. Nouveau is not affiliated with NVIDIA Corporation and is an X.Org Foundation project. While this project is still far from being completed, for this holiday special we are sharing some of our first thoughts on this project from our experience thus far. We would like to make it very clear, however, that the Nouveau driver is no where near completed and still has a great deal of work ahead for the 3D component. This article today will also hopefully shed some light on the advancements of this project so far.
Unlike the open-source Radeon R200 driver that was written using specifications provided by ATI Technologies, the Nouveau project receives no support from NVIDIA Corporation. Nouveau developers instead are reverse-engineering NVIDIA's closed-source Linux drivers, which is similar to the process used for developing the open-source R300/400 driver. Nouveau has only been around since the first half of this year, but in under a year it has begun to receive attention and a great deal of work has been completed. For those curious about the project name, Nouveau is French for the word "new."
The Nouveau Wiki clearly states that the current driver is intended only for developers. There is still plenty of work ahead before this driver can become usable for desktop users. Once the driver is working, it is intended to support all NVIDIA graphics cards -- from the Riva 128 NV03 to the GeForce 8800GTX G80. The driver also supports NVIDIA's Quadro workstation series. The NVIDIA graphics cards with the best support at this time are the NV20/30/40 series. While no GPU has complete support yet, among the many features being worked on are vertex format, texturing, lighting, buffer clears, blending modes, screen clipping, object clipping, DMA, TCL, vertex shaders, and fragment shaders. Below is a list of all supported NVIDIA GPUs as of December 23, 2006 (list available from Xorg.0.log when using the nouveau driver).
(II) NOUVEAU: driver for NVIDIA chipsets: RIVA 128, RIVA 128ZX, RIVA TNT, RIVA TNT2, Unknown TNT2, Vanta, RIVA TNT2 Ultra, RIVA TNT2 Model 64, Aladdin TNT2, GeForce 256, GeForce DDR, Quadro, GeForce2 MX/MX 400, GeForce2 MX 100/200, GeForce2 Go, Quadro2 MXR/EX/Go, GeForce2 Integrated GPU, GeForce2 GTS, GeForce2 Ti, GeForce2 Ultra, Quadro2 Pro, GeForce4 MX 460, GeForce4 MX 440, GeForce4 MX 420, GeForce4 MX 440-SE, GeForce4 440 Go, GeForce4 420 Go, GeForce4 420 Go 32M, GeForce4 460 Go, Quadro4 550 XGL, GeForce4 440 Go 64M, Quadro NVS, Quadro4 500 GoGL, GeForce4 410 Go 16M, GeForce4 MX 440 with AGP8X, GeForce4 MX 440SE with AGP8X, GeForce4 MX 420 with AGP8X, GeForce4 MX 4000, GeForce4 448 Go, GeForce4 488 Go, Quadro4 580 XGL, Quadro4 NVS 280 SD, Quadro4 380 XGL, Quadro NVS 50 PCI, GeForce4 448 Go, GeForce4 MX Integrated GPU, GeForce3, GeForce3 Ti 200, GeForce3 Ti 500, Quadro DCC, GeForce4 Ti 4600, GeForce4 Ti 4400, GeForce4 Ti 4200, Quadro4 900 XGL, Quadro4 750 XGL, Quadro4 700 XGL, GeForce4 Ti 4800, GeForce4 Ti 4200 with AGP8X, GeForce4 Ti 4800 SE, GeForce4 4200 Go, Quadro4 700 GoGL, Quadro4 980 XGL, Quadro4 780 XGL, GeForce FX 5800 Ultra, GeForce FX 5800, Quadro FX 2000, Quadro FX 1000, GeForce FX 5600 Ultra, GeForce FX 5600, GeForce FX 5600XT, GeForce FX Go5600, GeForce FX Go5650, Quadro FX Go700, GeForce FX 5200, GeForce FX 5200 Ultra, GeForce FX 5200, GeForce FX 5200LE, GeForce FX Go5200, GeForce FX Go5250, GeForce FX 5500, GeForce FX 5100, GeForce FX Go5200 32M/64M, Quadro NVS 55/280 PCI, Quadro FX 500/600 PCI, GeForce FX Go53xx Series, GeForce FX Go5100, GeForce FX 5900 Ultra, GeForce FX 5900, GeForce FX 5900XT, GeForce FX 5950 Ultra, GeForce FX 5900ZT, Quadro FX 3000, Quadro FX 700, GeForce FX 5700 Ultra, GeForce FX 5700, GeForce FX 5700LE, GeForce FX 5700VE, GeForce FX Go5700, GeForce FX Go5700, Quadro FX Go1000, Quadro FX 1100, GeForce 6800 Ultra, GeForce 6800, GeForce 6800 LE, GeForce 6800 XE, GeForce 6800 XT, GeForce 6800 GT, GeForce 6800 GT, GeForce 6800 GS, GeForce 6800 XT, Quadro FX 4000, GeForce 6800 GS, GeForce 6800, GeForce 6800 LE, GeForce 6800 XT, GeForce Go 6800, GeForce Go 6800 Ultra, Quadro FX Go1400, Quadro FX 3450/4000 SDI, Quadro FX 1400, GeForce 6600 GT, GeForce 6600, GeForce 6600 LE, GeForce 6600 VE, GeForce Go 6600, GeForce 6610 XL, GeForce Go 6600 TE/6200 TE, GeForce 6700 XL, GeForce Go 6600, GeForce Go 6600 GT, Quadro FX 550, Quadro FX 550, Quadro FX 540, GeForce 6200, GeForce 6500, GeForce 6200 TurboCache(TM), GeForce 6200SE TurboCache(TM), GeForce 6200 LE, GeForce Go 6200, Quadro NVS 285, GeForce Go 6400, GeForce Go 6200, GeForce Go 6400, GeForce 6250, GeForce 6800, GeForce 6800 LE, GeForce 6800 GT, GeForce 6800 XT, GeForce 6200, GeForce 6200 A-LE, GeForce 7800 GTX, GeForce 7800 GTX, GeForce 7800 GT, GeForce 7800 GS, GeForce 7800 SLI, GeForce Go 7800, GeForce Go 7800 GTX, Quadro FX 4500, GeForce 7300 LE, GeForce 7300 SE, GeForce Go 7200, GeForce Go 7300, GeForce Go 7400, GeForce Go 7400 GS, Quadro NVS 110M, Quadro NVS 120M, Quadro FX 350M, GeForce 7500 LE, Quadro FX 350, GeForce 7300 GS, GeForce 7600 GT, GeForce 7600 GS, GeForce 7300 GT, GeForce 7600 LE, GeForce 7300 GT, GeForce Go 7700, GeForce Go 7600, GeForce Go 7600 GT, Quadro NVS 300M, GeForce Go 7900 SE, Quadro FX 550M, Quadro FX 560, GeForce 7900 GTX, GeForce 7900 GT, GeForce 7900 GS, GeForce Go 7900 GS, GeForce Go 7900 GTX, Quadro FX 2500M, Quadro FX 1500M, Quadro FX 5500, Quadro FX 3500, Quadro FX 1500, Quadro FX 4500 X2, GeForce 6150, GeForce 6150 LE, GeForce 6100, GeForce Go 6150, GeForce Go 6100
The GPU with the most work left to be accomplished is the recently released 8800GTS / 8800GTX. Nouveau developers are also working on support for NVIDIA SLI (Scalable Link Interface). The closed-source NVIDIA drivers have only supported SLI for almost 13 months with debatable benefits. However, if the Nouveau driver is able to implement Scalable Link Interface it certainly should make things interesting with the ability to have this support on non-NVIDIA motherboard Chipsets (for which NVIDIA currently blocks).