Xinerama v. TwinView
When it comes to a multi-headed environment under Linux, there are two popular options for consumers -- Xinerama and TwinView. TwinView was developed by NVIDIA for allowing multiple monitors to be powered by a single GPU with their array of GeForce graphics cards. NVIDIA TwinView is also compatible with a wide array of displays from DFP displays to traditional television sets, and support remains unified with both Microsoft Windows and Linux. On the other hand, Xinerama was originally developed by DEC (Digital Equipment Corporation) under the name of PanoramiX, and was later incorporated into the X Window System as Xinerama. Not only is Xinerama compatible with NVIDIA solutions, but also is universal to all graphics cards with supportive Linux drivers and the X Window System -- including the ATI Radeon and FireGL series as of their v8.18.6 release. With Xinerama and TwinView being two of the popular multi-headed options for Linux users, we have decided to study the frame-rate performance for both of these configurations, as well as a traditional single-head setup, under a variety of popular games. As the focus of this article today is strictly upon the solid frame-rate results, we will not be sharing the various features directly nor the various advantages and disadvantages for each, however, more information is available at the NVIDIA website and the X.Org Foundation. For our testing, we used two Acer AL1715 LCD displays at 1280 x 1024, while below is the complete hardware, and software, specifications.
|Processor:||Intel Pentium D 820 @ 3.36GHz|
|Motherboard:||Abit AW8-MAX v1.0 (i955X)|
|Memory:||2 x 512MB Crucial Ballistix DDR2-800|
|Graphics Card:||Leadtek PX7800GTX 256MB|
|Hard Drives:||Seagate 160GB SATA2|
|Cooling:||Sytrin KuFormula VF1 Plus|
|Case:||Chenming Full ATX|
|Power Supply:||Enermax Whisper II 2.0 535W SLI|
|Operating System:||Fedora Core 4|
|Linux Kernel:||2.6.14-1.653_FC4smp (x86_64)|
|GCC - GNU Compiler:||4.0.0|
|Graphics Driver:||NVIDIA 1.0-8178|
Onto the X.Org configurations for multi-headed environments, NVIDIA supports the configuration of both TwinView and Xinerama through its nvidia-xconfig utility. Although the advanced-help area is able to share all of the specific flags for automatically configuring the multi-headed support, the automatic configuration alone may not be enough for proper control, and its likely some manual X.Org modifications will be needed. As is stated inside of NVIDIA's official Linux manual, the X TwinView options needed is the boolean TwinView as well as the MetaModes and SecondMonitorHorizSync/SecondMonitorVertRefresh or HorizSync/VertRefresh. In addition, other optional items include TwinViewOrientation, ConnectedMonitor, and UseEdidFreqs. As far as the Xinerama enabling goes, it is not as elaborate as NVIDIA's present TwinView implementation, but rather drives two separate X.Org screens. For knowing the specific multi-headed and single-headed configurations used during testing, as well as the specific parameters for those who have experienced problems, on the following pages is our xorg.conf files. Following these sample configurations are our benchmarking results from Xinerama, TwinView, and a single-head setup using the above-mentioned hardware and software selection. The gaming benchmarks ran in this article was Enemy Territory, Doom 3, and Quake 4. With each of these Linux-native games, the graphical settings were unique (as noted on the actual results) and are designed to display the differences between the two Linux multi-headed options under our microscope today. Two of our benchmarks focused upon the dual-headed capabilities, while Quake 4 was running on the primary display, we had mplayer playing a movie full-screen on the secondary display, and then in the other benchmark we simply had glxgears running on the second LCD to monitor how the performance was effected. In the event of the single head tests, we simply ran glxgears and mplayer behind Quake 4. On the following pages are our official findings.