I heard a lot about NVIDIA Xinerama & Compiz not working but on looking further, in recent times people have got them to work.
I’ve setup Xinerama with 4 monitors working across 2 dual video cards and it works great. I have the latest NVIDIA drivers (using the one-click) and I just installed the latest compiz using one-click as well.
The cards are as follows:
Chip: 0 is -> NVIDIA GeForce 8600 GT 01:00:0 0x10de 0x0402 AGP nvidia
Chip: 1 is -> NVIDIA GeForce 8600 GT 02:00:0 0x10de 0x0402 AGP nvidia
(I chose these because they have no fans and when working from home, quiet is nice to have!)
The following options are recommended to run compiz with NVIDIA and I have enabled them all at one point. However, looking through carefully I don’t need to since using the latest drivers and having pretty good video cards all this seems to be (according to the documentation) automatically enabled.
Option “RenderAccel” “True”
Option “AddARGBGLXVisuals” “True”
Option “UseCompositeWrapper” “True”
So, by all accounts I should be able to simply add:
Section “ServerFlags”
Option “Composite” “Enable”
EndSection
…and compbiz should work. And it does.
However, here’s the part I don’t see any info. on, it also automatically turns off the ability to drag windows between monitors and treats each monitor separately. This I don’t understand as I thought all the latest updates, from what I have been able to read, allow for NVIDIA, Ximerama & compiz working as one, not one crippling the other.
If someone could shed some light on this I would appreciate it. Below is my current xorg.conf file.
Please note that these options I have added:
Option "AllowGLXWithComposite" "True"
Option “MultisampleCompatibility” “True”
Option "TripleBuffer" "True"
Option "OnDemandVBlankInterrupts" "True" # Expermental option
were added only after trying all the other things recommended and as far as I know don’t really affect this problem. I added them simply because I had been combing through NVIDIA options so much I figured while they were fresh in my mind I would “play” with some that seemed to apply to my setup. I’m quite happy to remove any that someone thinks could be a problem for getting NVIDIA, Xinerama & compiz working happily together.
The XORG.COMF file:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder58) Thu Jul 17 18:39:42 PDT 2008
# /.../
# SaX generated X11 config file
# Created on: 2008-11-26T01:42:20-0800.
#
# Version: 8.1
# Contact: Marcus Schaefer <sax@suse.de>, 2005
# Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-users>
#
# Automatically generated by [ISaX] (8.1)
# PLEASE DO NOT EDIT THIS FILE!
#
Section "Files"
InputDevices "/dev/gpmdata"
InputDevices "/dev/input/mice"
FontPath "/usr/share/fonts/misc:unscaled"
Lots more fonts here, removed for easier reading
FontPath "/opt/kde3/share/fonts"
EndSection
Section "Module"
Load "freetype"
Load "type1"
Load "dbe"
Load "glx"
Load "extmod"
EndSection
Section "ServerLayout"
Identifier "Layout[all]"
Screen 0 "Screen0" 1600 1024
Screen 1 "Screen1" LeftOf "Screen0"
Screen 2 "Screen2" Above "Screen0"
Screen 3 "Screen3" LeftOf "Screen2"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
EndSection
Section "ServerFlags"
Option "AllowMouseOpenFail" "on"
Option "ZapWarning" "on"
Option "Clone" "off"
Option "Xinerama" "on"
EndSection
Section "ServerFlags"
Option "Composite" "Enable"
EndSection
Section "InputDevice"
Identifier "Keyboard[0]"
Driver "kbd"
Option "Protocol" "Standard"
Option "XkbLayout" "us"
Option "XkbModel" "microsoftpro"
Option "XkbRules" "xfree86"
EndSection
Section "InputDevice"
Identifier "Mouse[1]"
Driver "mouse"
Option "Buttons" "7"
Option "Device" "/dev/input/mice"
Option "Name" "Holtek USB Mouse"
Option "Protocol" "explorerps/2"
Option "Vendor" "Sysp"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "ViewSonic VP231wb"
HorizSync 30.0 - 92.0
VertRefresh 24.0 - 85.0
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "CRT-1"
DisplaySize 475 297 # 89.8x89.8DPI
HorizSync 30.0 - 81.0
VertRefresh 50.0 - 75.0
Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Unknown"
ModelName "CRT-0"
DisplaySize 475 297
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
EndSection
Section "Monitor"
Identifier "Monitor3"
VendorName "Unknown"
ModelName "CRT-1"
DisplaySize 475 297
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8600 GT"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Videocard1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8600 GT"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Device"
Identifier "Videocard2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8600 GT"
BusID "PCI:2:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Videocard3"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8600 GT"
BusID "PCI:2:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT-0: 1680x1050 +0+0"
Option "AllowGLXWithComposite" "True"
# Option "MultisampleCompatibility" "True"
Option "TripleBuffer" "True"
Option "OnDemandVBlankInterrupts" "True" # Expermental option
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Videocard1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "MetaModes" "CRT-1: 1680x1050 +0+0; CRT-1: 1400x900 +0+0; CRT-1: 1280x1024 +0+0; CRT-1: 1280x960 +0+0; CRT-1: 1280x768 +0+0; CRT-1: 1280x720 +0+0; CRT-1: 1152x864 +0+0; CRT-1: 1024x768 +0+0; CRT-1: 848x480 +0+0; CRT-1: 832x624 +0+0; CRT-1: 800x600 +0+0; CRT-1: 640x480 +0+0; CRT-1: 700x400 +0+0"
Option "AllowGLXWithComposite" "True"
# Option "MultisampleCompatibility" "True"
Option "TripleBuffer" "True"
Option "OnDemandVBlankInterrupts" "True" # Expermental option
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen2"
Device "Videocard2"
Monitor "Monitor2"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT-0: 1680x1050 +0+0; CRT-0: 1280x1024 +0+0; CRT-0: 1152x864 +0+0; CRT-0: 1024x768 +0+0; CRT-0: 800x600 +0+0; CRT-0: 640x480 +0+0; CRT-0: 720x400 +0+0"
Option "AllowGLXWithComposite" "True"
# Option "MultisampleCompatibility" "True"
Option "TripleBuffer" "True"
Option "OnDemandVBlankInterrupts" "True" # Expermental option
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen3"
Device "Videocard3"
Monitor "Monitor3"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "CRT-1: 1680x1050 +0+0; CRT-1: 1280x1024 +0+0; CRT-1: 1152x864 +0+0; CRT-1: 1024x768 +0+0; CRT-1: 800x600 +0+0; CRT-1: 640x480 +0+0; CRT-1: 720x400 +0+0"
Option "AllowGLXWithComposite" "True"
# Option "MultisampleCompatibility" "True"
Option "TripleBuffer" "True"
Option "OnDemandVBlankInterrupts" "True" # Expermental option
SubSection "Display"
Depth 24
EndSubSection
EndSection