Benchmarks Of Nouveau's Gallium3D OpenGL Driver
As we shared a few days ago, Fedora 13 will provide OpenGL acceleration support for NVIDIA graphics cards via the Nouveau driver when installing the Mesa DRI experimental drivers package. There is finally 3D acceleration for NVIDIA graphics cards using an open-source driver on Linux without having to depend upon NVIDIA's official binary driver. What makes this open-source 3D support for NVIDIA GPUs even more interesting is that it is atop the Gallium3D driver architecture rather than classic Mesa. With that said, we are providing early benchmarks of the Nouveau Gallium3D driver in Fedora 13 with two GeForce graphics cards as we compare the performance to NVIDIA's official Linux driver.
For a few releases Red Hat has been shipping the Nouveau driver in Fedora rather than using the obfuscated xf86-video-nv driver that goes without any 3D support and is crippled with other limitations. Fedora started having the xf86-video-nouveau DDX driver with user-space mode-setting, but that changed over to the kernel mode-setting code-paths where it continues to be the default NVIDIA option with Fedora 12. Fedora 13 will again feature all of the latest bleeding-edge bits for Nouveau and the other parts of the X.Org stack, but with this forthcoming release the Nouveau 3D driver is packaged in the mesa-dri-drivers-experimental RPM package. Simply installing this package via yum will enable the NVIDIA 3D support.
For years the Nouveau project has been seeking to provide a full open-source driver stack for all current and past NVIDIA graphics processors and finally all of this hard work is coming to fruition. While Fedora was the first to begin shipping Nouveau, other distributions are doing the same and the Nouveau DDX driver has been available in Ubuntu since 9.04 and with Ubuntu 10.04 they too will be ditching xf86-video-nv by default and turning to Nouveau with KMS. Kernel mode-setting via Nouveau is working for just about all of the NVIDIA GPUs out there and features like EXA / X Render, X-Video, RandR 1.2, and even TV-Out should be working. The mode-setting and 2D portions have been in a decent state for months now while 3D support continues to actively mature. There still is not a stable release (or even a development snapshot) of the xf86-video-nouveau X.Org driver, but such a release should come after the DRM support is available in a released kernel.
The DRM (Direct Rendering Manager) portion of the Nouveau code landed in the Linux 2.6.33 kernel that is needed for kernel mode-setting and used by the 3D driver. The Gallium3D driver for Nouveau landed in the mainline Mesa code-base last February, except it has not built or enabled by default. In the past few weeks a classic Mesa driver for old NVIDIA GPUs has also emerged that is designed for the NV20 GPUs and earlier as these fixed-function graphics processors really are not ideal for Gallium3D. This classic Mesa driver is also available from this Mesa DRI driver package.
In regards to the Gallium3D support for NVIDIA NV30/40/50 GPUs, support for primitives is done while textures, vertex programs, and fragment programs support is regarded as being mostly done, according to their feature matrix. As we shared in the news announcement from earlier this week, the Gallium3D-Nouveau state in the Fedora 13 Rawhide code is that games like Quake 3, Nexuiz, Neverball, and the Spring RTS framework should function. Red Hat's Adam Williamson reported this, but we decided to try out the Rawhide packages on our own and see not only what works but also how it performs.
On a system containing an Intel Core i3 530 clocked at 3.32GHz, an ECS H55H-M motherboard, 2GB of OCZ DDR3 system memory, and a 64GB OCZ Vertex SSD we installed the latest Fedora Rawhide packages as of 2010-02-16. These Fedora packages included the Linux 2.6.33-rc8 kernel, GNOME 2.29.90, X.Org Server 188.8.131.52, xf86-video-nouveau 0.0.15, and a Mesa 7.8 development snapshot. Once the Mesa DRI experimental drivers package was installed, the OpenGL support was "just working" fine on the NVIDIA graphics cards we tested. Immediately we were able to enable Compiz and it switched on seamlessly. After a while, though we did notice some artifacts appearing around some of the windows (see the screenshot below). The OpenGL rendering within the games we tested seemed to be fine with no visual defects.
On one of the times, none of the fonts had showed up on the screen when running in a composite-enabled environment. Compiz was enabled during all of our benchmarking.
To benchmark the Gallium3D driver in Fedora 13 for Nouveau we fired up the Phoronix Test Suite and ran the OpenArena, World of Padman, Urban Terror, Unreal Tournament 2004, and Warsow test profiles. We tested each of these OpenGL games at five different resolutions: 800 x 600, 1024 x 768, 1280 x 1024, 1680 x 1050, and 1920 x 1080. The graphics cards we used for this article were a GeForce 8600GTS and a GeForce 9800GTX. The NVIDIA binary driver we used for comparison was the NVIDIA 195.36.03 beta. We will be delivering more Gallium3D benchmarks in the future.