OK, so this was utterly painful and I needed to share what finally worked for me. I have 2 x Nvidia GTX480 cards. I have 3 x monitors. I wanted to be able to run all three off the same box, using it as a single X Screen (i.e. so I can move windows between screens and it acts correctly). No matter what I tried, it wouldn't let me do so with the proprietary driver. I asked on Stack Exchange and got somewhere closer. Here's what worked:
- Use driver 319.60 or 337.12. 331.20 did not work for me. Update (28th August 2015): I've now had success with driver 346, so this tutorial is still relevant.
- Install the SLI bridge (hardware). Even though you are not using SLI, you need to put the bridge in and enable it.
- Use SLIMosaic and BaseMosaic options. Ignore the fact the manual implies it won't work for this card. It does.
My XConfig looks like this:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Ancor Communications Inc ASUS VS247"
HorizSync 24.0 - 83.0
VertRefresh 50.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "LG Electronics W2243"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: unknown, VertRefresh source: unknown
Identifier "Monitor2"
VendorName "Unknown"
ModelName "AOC LM720/LM720A"
HorizSync 30.0 - 83.0
VertRefresh 55.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 480"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 480"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "MultiGPU" "Off"
Option "SLI" "on"
Option "SLIMosaic" "True"
Option "BaseMosaic" "True"
Option "MetaModes" "GPU-1.CRT-0: 1280x1024+0+0, GPU-0.CRT-0: 1920x1080+1280+0, GPU-0.DFP-2: 1920x1080+3200+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Totally weirdly, you don't need to have more than one device listed (my second card is at "PCI:1:0:0").
Note also that, despite this then yielding two providers, when it's working xrandr 1.4 (which supports multiple GPUs) only lists 1 provider:
xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 4 outputs: 10 associated providers: 0 name:NVIDIA-0"
Anyway, it now works!