Another Look At The Latest Nouveau Gallium3D Driver
Earlier this month I reported on good and bad news for the Nouveau Gallium3D driver with the good news being that for the hardware that played well with this reverse-engineered open-source driver, the OpenGL performance was not too bad in most instances compared to NVIDIA's official proprietary driver. There still is quite a difference in performance between the two NVIDIA Linux drivers, but it is a usable experience in a number of cases and is not too bad for Nouveau being a community-driven driver. However, the bad news was that non-GeForce 8 hardware had regressed to being non-functioning. Since that article, however, using code that is some more recent I have the GeForce 9 and GeForce 200 acceleration working again. The current code though leaves a lot to be desired.
When checking out the latest Linux 2.6.38 kernel, libdrm, xf86-video-nouveau, and Mesa 7.11-devel all as of 17 January 2011, more graphics cards that I previously tested with Nouveau were back to functioning with the open-source kernel driver. In particular, the GeForce 9500GT, GeForce 9800GT, GeForce 9800GTX, and GeForce GT 220 were used for another mini test comparison of this days-old Nouveau code against the proprietary NVIDIA driver.
While these graphics cards were once again functioning, it was not completely regression free. Overall, from my testing, the support for this hardware at this very moment for the aforementioned software/hardware is brutally buggy. In order to get these new Nouveau test results, the benchmarking on the different graphics cards had to be restarted multiple times due to stability issues and/or rendering problems after what appears to be memory management problems in a sporadic manner. Once everything was going, for a few NVIDIA GeForce graphics cards there were also problems running a couple of the OpenGL benchmarks. These steep regressions are somewhat surprising for an end-user because a few months ago the support was working fairly nicely. Also, with the new power management code in the Nouveau driver, the GPU core and memory clock speeds were the same for the two drivers except for the GeForce GT 220, which seemed to have memory clocking issues with a max memory frequency of 400MHz versus 950MHz when on the NVIDIA driver.
The system used for testing the GeForce 9500GT, 9800GT, 9800GTX, and GT 220 PCI Express graphics cards had an Intel Core i7 970 CPU, an ASRock X58 SuperComputer motherboard, 3GB of DDR3 system memory, and a 60GB OCZ Vertex 2 SSD. The Linux, Mesa, libdrm, and Nouveau DDX components were built atop an Ubuntu 10.10 x86_64 installation with X Server 1.9.0 and GCC 4.4.5. All the rest of the testing was left stock.
Due to the brutally buggy experience with Nouveau right now and it being a while before the Linux 2.6.38 kernel and Mesa 7.11-devel will be officially released, these results comparing it to the NVIDIA 260.19.29 proprietary driver are being published as-is and without any further commentary. Once the level of support is bettered, there will be more commentary and analysis, but as of right now the Nouveau driver is being slaughtered several times over by the NVIDIA binary driver.