Linux - Configuring multiple x screens on one card

Answer ID 176
Published 11/30/2004 09:47 AM
Updated 02/25/2008 10:48 AM

Configuring multiple x screens on one card


Graphics chips that support TwinView (see the article titled "Linux - Configuring Twinview")

can also be configured to treat each connected display device
as a separate X screen.

While there are several disadvantages to this approach as compared to
TwinView (eg: windows cannot be dragged between X screens, hardware
accelerated OpenGL cannot span the two X screens), it does offer several
advantages over TwinView:

 o If each display device is a separate X screen, then properties
   that may vary between X screens may vary between displays (eg:
   depth, root window size, etc).

 o Hardware that can only be used on one display at a time (eg:
   video overlays, hardware accelerated RGB overlays), and which
   consequently cannot be used at all when in TwinView, can be
   exposed on the first X screen when each display is a separate
   X screen.

 o The 1-to-1 association of display devices to X screens is
   more historically in line with X.

To configure two separate X screens to share one graphics chip, here is
what you will need to do:

First, create two separate Device sections, each listing the BusID of
the graphics card to be shared, each listing the driver as "nvidia",
and assign each a separate screen:


 Section "Device"
Identifier  "nvidia0"
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusID  "PCI:2:0:0"
Screen 0
 EndSection

 Section "Device"
Identifier  "nvidia1"
Driver "nvidia"
# Edit the BusID with the location of your graphics card
BusId  "PCI:2:0:0"
Screen 1
 EndSection


Then, create two Screen sections, each using one of the Device sections:


 Section "Screen"
Identifier  "Screen0"
Device "nvidia0"
Monitor"Monitor0"
DefaultDepth 24
Subsection "Display"
    Depth  24
    Modes  "1600x1200" "1024x768" "800x600" "640x480"
EndSubsection
 EndSection

 Section "Screen"
Identifier  "Screen1"
Device "nvidia1"
Monitor"Monitor1"
DefaultDepth 24
Subsection "Display"
    Depth  24
    Modes  "1600x1200" "1024x768" "800x600" "640x480"
EndSubsection
 EndSection


(note: you'll also need to create a second Monitor section)

Finally, update the ServerLayout section to use and position both Screen
sections:


 Section "ServerLayout"
...
Screen    0 "Screen0"
Screen    1 "Screen1" leftOf "Screen0"
...
 EndSection


For further details, please refer to the XF86Config(5x) or xorg.conf(5x)
manpages.

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