nV News Forums

 
 

nV News Forums (http://www.nvnews.net/vbulletin/index.php)
-   NVIDIA Linux (http://www.nvnews.net/vbulletin/forumdisplay.php?f=14)
-   -   Options for adding a third monitor (http://www.nvnews.net/vbulletin/showthread.php?t=133740)

markpogo 05-30-09 06:06 AM

Options for adding a third monitor
 
I'd like to add another monitor (1920x1200 TFT) to my Linux setup, taking it to triple monitors. This is for programming, but I occasionally toy with some lightweight graphics too.

I already have an NVidia 6600 card PCIe x16, with dual DVI outputs. Works great and the performance is just fine.

I want to add a second graphics card for the 3rd screen. I'm not sure if I can do this with Linux though? If it is possible, can I retain TwinView across two of the three displays? (I imagine I definitely can't 'TwinView' across two cards).

Is anybody here using such a setup?

An extra card would have to be PCIe x1 or PCI. Will this work alongside the PCIe x16 card, or am I going to find it cripples the performance of the main card?

Thanks!

JaXXoN 05-31-09 08:39 AM

Re: Options for adding a third monitor
 
Hi!

The setup you described is possible on linux but depending on your
needs may not work good enough. For details, please refer to the
attached the draft multi-head howto i'm currently working on:


Linux (Nvidia and Matrox TripleHead2Go) Multi-Head Howto


Introduction

There are serveral ways to operate a number of displays from the same PC with
Linux. Which solutions is the best for you is strongly depending on your
application, working habits and budget.


TwinView

For two displays, the user can easily make use of the nvidia's twinview
operation mode that allows to apply a single framebuffer for both displays
(see Figure 1).

Code:

Videocard                        Displays
  ________
          |
    DVI-D +-----------------------> LCD #1
          |
          |
          |
    DVI-D +-----------------------> LCD #2
  ________|

Fig. 1: TwinView - the classical dual head setup with one video card

There's basically nothing wrong about TwinView, but obviously, this setup is
limited to two displays.


SLI Multiview

If more than two displays are needed, then the easiest way is to add one or
more graphics cards. For example, for a triple head setup, you could attach
two displays to the two outputs of the first video card (operated in twinview
mode forming one X screen) and another displays to one of the outputs on the
second video card forming another screen. Both screens are then merged together
to form a single desktop using Xinerama [] (See Figure 2). Nvidia
documentation names this variant "SLI Multiview".

Code:

Videocards                      Displays
  ________
          |                                  _
    DVI-D +-----------------------> LCD #1    |
          |                                    |
  Card #1 |                                    > Screen #1 (with Twinview)
          |                                    |
    DVI-D +-----------------------> LCD #2    _|
  ________|
 
  ________
          |
    DVI-D +-----------------------> LCD #3        Screen #2
          |
  Card #2 |
          |
    DVI-D +--- N.C.
  ________|


Fig. 2: SLI Multiview - the classical triple head setup with two video cards and Xinerama

However, this approach has a number of drawbacks:

* Most prominently, re-draw events are caused inside moving windows
while crossing screen boundaries. Practically, this means that moving
a window from the second to the third display (as in the setup as described
above) will cause annoying tearing for complex contents such as rendered
by Firefox or OpenOffice. Depending on your applications and working habits,
this may or may not be an issue for you.

* The X Server needs to split the graphic operations among the video cards.
This typically causes a 20% lower frame rate for most games.

* The "faking" nvidia TwinView Xinerama extension (which takes care about
correct window maximization for a two LCD twinview setup) is automatically
disabled when "true" Xinerama is enabled. Since windows always maximise to
screen boundaries, this means that a window on one of the first two displays
will always maximise to both displays rather than to the display it is
currently located at.

There are solutions that overcome this issue, but they come at a price:

o Define separate screens for the two displays connected to the first video
card. This will provide three screens (combinded with Xinerama) and
maximizing works as expected, but the annoying re-draw event situation
will just become worse.

o There do exist patches for the X server and libXinerama that will fake
the xinerama information on a higher level []. However, patching and
recompiling the X server is typically not a simple task, even for
experienced software developers, and with every software updated, this
task has to be re-done and the patches may easily not apply any more
with newer releases of Xorg.

* Xinerama doesn't interact well with the compositing extension of Xorg.
The exact reasons are yet unclear [] and a cure doesn't seem to be
available in a foreseable future. So in turn, that means that compositing
window managers such as Compiz will not work with a multi-card xinerama
setup. In Theory, you could use XGL as an overlay to the existing X server
in order to overcome this issue [six head demo on utube] [instr],
but XGL is depricate and has been reported to not inter-operate with
recent Linux distributions []

* Last but not least, multi-card solutions are always a hugh source of
problems:

o For some games, the mouse pointer may not work as expected []

o The distribution of the graphic command stream amongst GPUs
may not always work correctly. []

o Two or more video cards placed into a single PC are causing
higher requirements on the power supply unit and the cooling.

o With an increasing number of video cards in a system, potentially
existing hardware and BIOS incompatibilities may have an increasing
negative influence on the system stabilty. [AMD X2] [7800vs8800]

To summarize it, depending on your applications, working habits and
components choosen, an SLI Multiview triple head setup with two video
cards, twinview and Xinerama may or may not work convenient for you.


SLI Mosaic

All the problems as described for SLI Multiview can be avoided when purchasing
an nvidia Quadro Plex visualization system and using the "SLI Mosaic" technique
that combines the GPUs on driver level rather than with Xinerama. Please note
that SLI Mosaic is currently not supported for nvidia Quadro cards and/or for
the GeForce series.

While SLI Mosaic with nvidia Quadro Plex looks like the ideal solution,
technical wise, the high price tag of about $10.000 (and more) requires a realy
good business case and is most typically far out of budget for private use.


Splitting video outputs with Matrox TripleHead2Go

In order to overcome the limitations of the classical multi head variants, a
pretty simple solution is to split the video output(s) of a video card into
two or three outputs with an external hardware box called TripleHead2Go [],
manufactured by Matrox [].

The Matrox TripleHead2Go Digital Edition has one DVI input, a VGA input and
three DVI outputs. There is also a USB connector which is mainly used as a
power supply (on windows, it is possible to re-program the TH2G using the
Matrox PowerdeskSE tool, but this is not necessary for operating the TH2G
with Linux).

An incomming signal with a resolution of 3840x1024 will i.e. be split into
3x 1280x1024 for three LCDs that are attached to the three outputs of the box.
When the box receives an appropriate 3200x1600 video signal and only two
displays are attached, then the TH2G will split the signal to 2x 1600x1200.
The TH2G support quite a number of modes [].

The Maximum resolution in triple head mode is 5040x1050 (3x 1680x1050) and in
dual head mode it is 3840x1200 (2x 1920x1200). Please note that the 5040x1050
will only work at 57Hz refresh frequency. Some displays may not work correctly
with the default timing settings that are provided by matrox for this mode.
It may be possible to correct that by manually tweaking the appropriate
modeline. I.e. for an Acer V223Wbd, it helped to increase the vertical
blanking from 1066 to 1073 (for details on this topic please refere to []).

So now with two DVI outputs on a single video card and with the option to
split each of these outputs to feed two or three LCDs, there is a number of
possible display setup combinations. The most typical variants are triple
head setups (see Figure 3) and quad head setups (see Figures 4 and 5). If you
want to place four 1680x1050 displays in a row, then you can connect one LCD
directly to the first DVI output of the video card and operate the other three
LCDs via the TH2G through the second DVI output (see figure 4). If you need a
higher resolution (i.e 4x 1920x1200) or like to have the four LCDs setup in
a two rows by two columns setup (2x2 1920x1200), then you need two TH2Gs
(see figure 5). Last but not least, you can attach three 1680x1050 to each
of the two TH2Gs connected to the two DVI outputs of a single video card
in order to form a hugh 5040x2100 desktop (2x3 1680x1050, see figure 6).


Code:

Videocard                        Displays
  ________
          |
    DVI-D +-----------------------> LCD #1
          |            ____
    Out  |          |    |
    put  |          |    +------> LCD #2
          |          |    |
    DVI-D +---------->|    +- (N.C)
  ________|          |    |
                      |    +------> LCD #3
                      |____|
                      TH2G

Fig. 3: 5760x1200 (3x 1920x1200) setup

Code:

Videocard                        Displays
  ________
          |
    DVI-D +-----------------------> LCD #1
          |            ____
    Out  |          |    |
    put  |          |    +------> LCD #2
          |          |    |
    DVI-D +---------->|    +------> LCD #3
  ________|          |    |
                      |    +------> LCD #4
                      |____|
                      TH2G

Fig. 4: 6720x1050 (4x 1680x1050) setup

Code:

Videocard                        Displays
                      ____
                      |    |
  ________            |    +------> LCD #1
          |          |    |
    DVI-D +---------->|    +- (N.C)
          |          |    |
          |          |    +------> LCD #2
          |          |____|
    Out  |            TH2G
    put  |
          |            ____
          |          |    |
          |          |    +------> LCD #3
          |          |    |
    DVI-D +---------->|    +- (N.C)
  ________|          |    |
                      |    +------> LCD #4
                      |____|
                      TH2G

Fig. 5: 7680x1200 (4x 1920x1200) or 3840x2400 (2x2 1920x1200) setup

Code:

Videocard                        Displays
                      ____
                      |    |
  ________            |    +------> LCD #1
          |          |    |
    DVI-D +---------->|    +------> LCD #2
          |          |    |
          |          |    +------> LCD #3
          |          |____|
    Out  |            TH2G
    put  |
          |            ____
          |          |    |
          |          |    +------> LCD #4
          |          |    |
    DVI-D +---------->|    +------> LCD #5
  ________|          |    |
                      |    +------> LCD #6
                      |____|
                      TH2G

Fig. 6: 5040x2100 (2x3 1680x1050) setup


Configuration

There are two ways to setup the TH2G for a Linux system:


a) Re-configure the TH2G on Windows (<4096)

Providing the over-all resolution of all displays connected to the TH2G
doesn't exceed 4095 pixel, it's recommended to re-program the EDID tag
that the TH2G will report to the X-Server. Means: if you have two 1600x1200
displays, then you should one-time configure the TH2G using PowerDeskSE
on a window box for this setup. The TH2G will then report to the X-Server
that a 3200x1200 display is connected to the video card and also supplies
the appropriate timing that the X-Server needs to generate so that the
TH2G actually knows how to split the video output.

When using this variant, then you don't need to do any special actions
under Linux: the X-Server will query the EDID information from the TH2G
and will treat it just as a display with high resolution capabilities.


b) Supply modelines in xorg.conf

In case you intend to use a combined resolution that is bigger than 4095
pixels, then you need to setup your system in a different way, because the
vertical blanking timing field in the EDID has only 12 bits and thus cannot
store information for such a big resolution.

So in this case, you need to add special modelines to the "Monitor"
section of your xorg.conf file. You also need to add appropriate
values for "HorizSync" and "VertRefresh". For the later two, just
use values as specified for the LCDs you intend to use using.

If you don't have a windows box on hand for reprogramming the TH2G as
described in b), above, then you can also use this configuration
method, of course.

Here's a list of Modelines for the most commonly used display resolutions
for TripleHead2Go:

Code:

Dual Head Modes
2x 1680x1050:  ModeLine "3360x1050" 238.00 3360 3424 3488 3680 1050 1053 1061 1080 +HSync +VSync
2x 1600x1200:  ModeLine "3200x1200" 281.40 3200 3264 3456 3752 1200 1201 1206 1250 +HSync +VSync
2x 1920x1080:  ModeLine "3840x1080" 277.00 3840 3904 3968 4160 1080 1083 1092 1111 +HSync +VSync
2x 1920x1200:  ModeLine "3840x1200" 308.00 3840 3904 3968 4160 1200 1203 1213 1235 +HSync +VSync

Code:

Triple Head Modes
3x 1280x1024:  ModeLine "3840x1024" 254.31 3840 3856 3872 3976 1024 1025 1032 1066 +HSync +VSync
3x 1360x768:  ModeLine "4080x768"  200.38 4080 4104 4136 4200  768  771  779  795 +HSync +VSync
3x 1440x900:  ModeLine "4320x900"  320.10 4320 4400 4688 5712  900  903  915  934 +HSync +VSync
3x 1680x1050:  ModeLine "5040x1050" 326.66 5040 5104 5168 5376 1050 1053 1057 1066 +HSync +VSync

To make the timing settings effective, you need to add the following
line to the "Screen" section of your xorg.conf file:

Option "UseEDID" "False"
Option "ExactModeTimingsDVI" "True"


Feedback is highly welcome

regards

Bernhard

markpogo 05-31-09 01:19 PM

Re: Options for adding a third monitor
 
Thanks for that, really useful.

The Matrox Triple/Dual Head 2 Go isn't really an option because my current card doesn't have Dual Link DVI outputs. So I'd need to replace my current graphics card, increasing the cost.

It looks like I can probably happily use "SLI Multiview". I'm aware of the redraw across screen boundaries, but don't see that as a problem for me, and I don't use Compiz etc..

There is one thing I'd be grateful if you could clarify (and perhaps include in your updated drafts); when using a combination of TwinView and Xinerama, what happens with OpenGL / 3D Applications?

a) OpenGL is disabled, no 3D
b) Restricted to only the TwinView monitors
c) Works across all 3 screens, but performance is poor when the OpenGL spans two graphics cards

I don't mind (b) or (c), that's fine for my dabbling with 3D tools, but I seem to remember (a) from a few years back, which wouldn't be much fun.

Returning to another option, is TwinView always restricted to 'twin' or can it operate across 3/4 outputs on the same card? Is there an economical NVidia graphics card with 3/4 outputs?

Thanks again for your how-to doc.

JaXXoN 05-31-09 02:03 PM

Re: Options for adding a third monitor
 
Quote:

Originally Posted by markpogo (Post 2019932)
I can probably happily use "SLI Multiview" [...]
what happens with OpenGL / 3D Applications?
[...]
c) Works across all 3 screens, but performance is poor when the OpenGL spans two graphics cards

OpenGL works across all three displays, i.e. i was playing UT2K and X-Plane for a couple
of years with two 7800GTX and later with two 8800GT cards. Performance is about
20%-30% lower than with a single card TH2G solution at the same resolution.
Please note that 7-series and below cards are limited to 4096 pixel for 3D. Also,
you need GPUs of the "same family" for OpenGL - for example, a 7800GTX won't
work along with a 8800GT, but a 6600 may work with a 7 series card. Best is
to use two identical cards.

Quote:

Originally Posted by markpogo (Post 2019932)
Returning to another option, is TwinView always restricted to 'twin' or can it operate across 3/4 outputs on the same card? Is there an economical NVidia graphics card with 3/4 outputs?

Quadro NVS 420 and the 450 have four outputs (around $500).
Also, the FX4700 X2 have four outputs (around $2500).
These cards hold two GPUs on one board and you need to configure
them just like an SLI-Multiview system with two cards as explained
in the howto.

I can remember that there have been some gamer/consumer Multi-GPU
cards with four outputs, but can't easily google one right now.

Anyway, if you have an SLI mainboard with two 16x PCIe slots
available, then those multi-GPU cards might not be the best
choice for you concerning the price/performance ratio.

regards

Bernhard

markpogo 05-31-09 05:16 PM

Re: Options for adding a third monitor
 
Quote:

Originally Posted by JaXXoN (Post 2019951)
Please note that 7-series and below cards are limited to 4096 pixel for 3D. Also,
you need GPUs of the "same family" for OpenGL - for example, a 7800GTX won't
work along with a 8800GT, but a 6600 may work with a 7 series card. Best is
to use two identical cards.

This is likely to be the sticking point for me -- finding a 6xxx series PCI card with a DVI output. Besides, I'm going to hit that 4096 pixel limit, making 3D on the third screen impossibly anyway. I think this might mean I may as well just go with any card (even non-NVIDIA) as the third display?

Quote:

Anyway, if you have an SLI mainboard with two 16x PCIe slots
available, then those multi-GPU cards might not be the best
choice for you concerning the price/performance ratio.
Unfortuntately not, I only have a PCIe x1 and a PCI slots. It's not really time for a new PC, there's a few years left in this one yet :)

Thanks Bernhard

JaXXoN 05-31-09 06:38 PM

Re: Options for adding a third monitor
 
Quote:

Originally Posted by markpogo (Post 2020025)
This is likely to be the sticking point for me -- finding a 6xxx series PCI card with a DVI output.

True, I couldn't even find one on ebay right now :-)

Quote:

Originally Posted by markpogo (Post 2020025)
Besides, I'm going to hit that 4096 pixel limit, making 3D on the third screen impossibly anyway

Not necessarily: you can easily start a second X-Server dedicated to the
game you intend to play with i.e. a resolution of 3840x1024 pixels, then modern
LCDs will scale that to their native resolution. I did it this way the time I had
three 1600x1200 LCDs attached to two 7800GTX cards in SLI-Multiview mode.
The scaling is certainly recognizable, but for UT2K and X-Plane it was good
enough for me at that time.

Quote:

Originally Posted by markpogo (Post 2020025)
Unfortuntately not, I only have a PCIe x1 and a PCI slots. It's not really time for a new PC, there's a few years left in this one yet :)

You may consider purchasing a NVIDIA Quadro NVS 290 PCI-E *x16* and
on NVIDIA Quadro NVS 290 PCI-E *x1* card. Those are around $250
(but then you may also considering to opt for the TH2G).

regards

Bernhard

markpogo 07-24-09 05:58 PM

Re: Options for adding a third monitor
 
To bump an old thread: I solved my triple monitor setup. Spectacularly cheaply too by taking advantage of some second hand kit.

I added a second graphics card alongside my NVidia 6600. The cheapest DVI card I could find was an ATI Radeon 7000 PCI. Yes, I took a risk in getting a non-NVidia card.

I setup both cards in xorg.conf and they worked together. I encountered some bugs, lockups etc. (especially when trying to combine all 3 screens into one desktop using Xinerama). I tried many different sets of X packages with mixed results, and eventually found if I forcefully loaded the kernel 'radeon' module on bootup and these all went away. X doesn't load this module automatically. I'm using the most recent X packages I can find now.

This left one remaining problem: OpenGL caused the server to crash instantly. I traced this to a bug caused by having the environment variable __GL_SYNC_TO_VBLANK set, when having both my NVidia and ATI card on the same desktop. Disabled this, and I get OpenGL using the custom libGL on the NVidia card, and black on the ATI card -- perfect. I've sent in a bug report on the NVidia drivers here.

The setup works with or without TwinView driving the two NVidia displays. I'm finding not using TwinView to be better, as then I don't need 'fake Xinerama'.

So, if it's useful to anyone, here's my setup:

* Slackware on x86
* xorg-server-1.6.2 and associated packages, including xf86-video-ati-6.12.2 (all from Slackware-current)
* NVidia drivers 185.18.14
* NVidia 6600 PCI-E with two DVI outputs, connected to 20" 1600x1200 and 24" 1920x1200 TFTs
* ATI Radeon 7000 PCI (12 from eBay) with DVI output connected to 20" 1600x1200 Dell 2007FP (102 from eBay)

I've been running for a day now, all seems okay including OpenGL (on NVidia only). Not bad for a total of 114 spent either. Now I just need to get back to work :)

I'm sure I'll discover some niggles in the coming days too. But right now, I'm very happy!

First Internati 06-11-10 03:10 AM

Re: Options for adding a third monitor
 
This post is really helpful for me because it has been a long time since we are planning to have a third monitor connected to our other two monitor. But we are all not that technical so I volunteered to search for a tutorial in the net.. Can you please post or send me a link of where can I find a tutorial video. Thanks in advance.

markpogo 06-11-10 03:21 AM

Re: Options for adding a third monitor
 
I have since switched the ATI graphics card for an Nvidia one; a 6200 PCI, to complement my main 6600 PCI-X. OpenGL now works across all three screens, where it did not with the ATI card.

I had to give additional arguments to the kernel boot: vmalloc=256M. This is fully explained in the documentation from NVidia.

I also found I got a notable performance increase to web browsing in Opera by running the command: nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1

Roman_Gertz 06-12-10 05:05 AM

Re: Options for adding a third monitor
 
Hey, I have a Windows 7 operating system running on Core 2 Duo processor.. 2 monitors can be used, however, am also wondering if this can be used for laptops at the same time.. Any ideas on how I could work on this?

Dreamscape Imag 06-12-10 09:12 AM

Re: Options for adding a third monitor
 
Dearest Roman_gertz: As far as I know the answer to your question is yes.. because this is what we do on our computers at home.. you can even do it with a laptop.I think that You will just do what you did on the computers.. I hope that this will help you.

markpogo 06-13-10 10:21 AM

Re: Options for adding a third monitor
 
Quote:

Originally Posted by Roman_Gertz (Post 2268817)
Hey, I have a Windows 7 operating system running on Core 2 Duo processor.. 2 monitors can be used, however, am also wondering if this can be used for laptops at the same time.. Any ideas on how I could work on this?

Perhaps your question is best suited to a different forum; this thread is in the Linux-specific forums.


All times are GMT -5. The time now is 05:18 PM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.