How to configure MOSAIC on Linux

Answer ID 3580
Published 09/26/2014 03:17 PM
Updated 10/01/2014 12:36 PM

This article describes how to modify the Linux xorg.conf file to enable MOSAIC mode on NVIDIA Quadro + NVS GPUs

Key Concepts

MOSAIC allows for multiple displays to be attached to a single X server to create a unified Workspace.

MOSAIC is enabled by different options in the Screen section of the xorg.conf file depending on the system configuration. Note only one Screen needs to be defined with MOSAIC.

§ Single GPU - MOSAIC can be configured on up to 4 displays using the Metamodes option

MetaModes

Option         "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +0+1080, 1920x1080 +1920+1080"

§ 2 to 4 identical GPUs - MOSAIC is enabled using a combination using a combination of the "BaseMOSAIC" and "MetaModes" options.

BaseMOSAIC + MetaModes

Option        "BaseMosaic"   "TRUE"
Option        "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1:  1920x1080 +1950+0, GPU-1.DFP-0: 1920x1080 +0+1100, GPU-1.DFP-1: 1920x1080 +1950+1100" 
  • MOSAIC with Sync

  • 2 SLI GPUS - In a SLI compatible system MOSAIC is enabled using a combination of the "SLI" "MOSAIC" and "MetaModes" options

§ 2 to 4 GPUs with Quadro Sync - MOSAIC is enabled using a combination of the "SLI" "MOSAIC" and "MetaModes" option. As additional step is also required to enable framelock on the Quadro Sync card.

SLI MOSAIC + MetaModes

Option        "SLI"   "MOSAIC"    
Option        "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1:  1920x1080 +1820+0, GPU-1.DFP-0: 1920x1080 +0+1000, GPU-1.DFP-1: 1920x1080 +1820+1000"
 
 

Additional Options:

Most Window managers will override the NVIDIA settings - so although MOSAIC is enabled the window manager still detects separate displays attached. To correct this behavior you need to add the following option to the Screen section.

nvidiaXineramaInfo

Option         "nvidiaXineramaInfo" "FALSE"

In some cases the "RANDR" extension has to be disabled in order to see a single Desktop.

RANDR

Section "Extensions"
    Option         "Composite" "Disable"
EndSection

Example xorg.conf snippets

Single GPU - 2 x 2 layout

The MetaModes are defined from the top left of the screen - +0+0 will be top left. Each display entry is offset by a horizontal and vertical values.

Image

Screen section snippet from xorg.conf

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "MetaModes" "1920x1080 +0+0, 1920x1080 +1920+0, 1920x1080 +0+1080, 1920x1080 +1920+1080"
    Option         "nvidiaXineramaInfo" "FALSE" 
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection 

Overlap

Icon

Overlap between displays is only supported on Quadro K4200, K5000, K5200 and K6000 GPUs

Two GPUs using BASE MOSAIC

Bezel correction can be added by increasing the offset values. In example below a 30 pixel horizontal and 20 pixel vertical bezel correction is added.

 

Image

Screen section snippet from xorg.conf

Section "Screen"    
         Identifier     "Screen0"    
         Device         "Device0"    
         Monitor        "Monitor0"    
         DefaultDepth    24     
         Option        "BaseMosaic"   "TRUE"    
         Option         "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1:  1920x1080 +1950+0, GPU-1.DFP-0: 1920x1080 +0+1100, GPU-1.DFP-1: 1920x1080 +1950+1100"    
         Option         "nvidiaXineramaInfo" "FALSE"    
         SubSection     "Display"        
                 Depth       24    
         EndSubSection
EndSection
 

Hint: When using multiple GPUs you can specify the GPU and port in the MetaModes i.e. GPU-0.DFP-0:

Hint: It is not possible to specify overlap between channels when using BaseMOSAIC option

Two GPUs using SLI MOSAIC

Overlap correction can be added by reducing the MetaMode offset such that the one display overlaps with the other.

Image

Screen section snippet from xorg.conf

 Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
     Option        "SLI"   "MOSAIC"
    Option         "MetaModes" "GPU-0.DFP-0: 1920x1080 +0+0, GPU-0.DFP-1:  1920x1080 +1820+0, GPU-1.DFP-0: 1920x1080 +0+1000, GPU-1.DFP-1: 1920x1080 +1820+1000"
    Option         "nvidiaXineramaInfo" "FALSE" 
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Additional Steps for Quadro Sync + "SLI" "MOSAIC"

After X has been restarted framelock has to be enabled on the Quadro Sync card.

Open nvidiia-settings go to "Frame Lock"

If no devices are present select "Add Devices" and enter the name of the x-server e.g:

 mycomputer.domain.com:0

or

  localhost:0

Image

Select one display to be the server and the others to be the client - press EnableFrameLock

Image

The displays will now be synchronized.

Note: nvidia-settings are not automatically applied when X is restarted. Refer to the Linux README file (R340 readme) on information on how to script the framelock startup and add the script to ~/.xinitrc file or directory .

Was this answer helpful?
Your rating has been submitted, please tell us how we can make this answer more useful.

LIVE CHAT

Chat online with one of our support agents

CHAT NOW

ASK US A QUESTION

Contact Support for assistance

CONTACT US