Switching between virtual desktops

Quinn Harris quinn at qutek.net
Tue Jun 2 14:33:47 PDT 2009


Luca,

The project you describe is much harder than is reasonable for a single person 
on a tight budget and has some problems you might not recognize.  Driving 
multiple monitors off of one video in a way that is usable isn't as simple as 
rapidly switching the signal lines.  I believe it takes at least one full 
video frame for any monitor to sync on the signal.  Many probably take more.  
I doubt switching the signal would work acceptably even if you could send one 
complete frame to one monitor then the next to another monitor then back 
again.  But unless the switching is synchronized with the video signal you 
will loose a frame each time you switch.  I suggest you put something together 
to rapidly drop and recover the signal to one monitor to verify that the whole 
idea will work with a specific monitor.  I am very sceptical.  Switching the 
signal without all kinds of signal bounce (as with a button, switch or relay) 
isn't trivial, there might be an IC for the task though.  You probably only 
need to switch the horiz and vertical sync signals for VGA.  The monitor will 
defiantly "notice" a lost signal.  The LCD controller needs to know where in 
the data stream that the current pixel is when it is delivered to know what 
pixel on the screen to set.  I don't think most LCDs buffer the frame, there 
is no need.

What could work is using an FPGA like the Xilinx Spartan III (I think this has 
enough power) on a custom circuit board feed by a dual-link dvi (more 
expensive card) with single link DVI outputs.  But you will have to develop 
Verilog or VHDL code to decode part of the DVI signal produce an appropriate 
clock for each output, buffer each video line and shift it out to each output 
appropriately.  This is a good month project to prototype for someone who 
knows what they are doing and has all the right equipment.  The Matrox 
Graphics eXpansion Modules are basically this, but the price tag is over $300.  
I have considered developing such devices but I would never sell a 1 to 6 head 
DVI line buffering splitter for less than $150 (assuming I could sell over 
10,000 units), nobody else will either.  You could only drive 4 1280x1024 at 60hz 
panels from one dual link DVI port.  You either have to reduce the res/refresh 
rate or have a device that buffers the whole frame, and that will be more 
expensive.  Even with this the current Xserver can't be setup to have multiple 
independent displays on one monitor.  Maybe this will change one day.

A video splitter that actually works well is a significant design project for 
one person and easily justify 6 credit hours of design class credits for an 
electrical engineer major.  As the Matrox product proves it can be done.

Packing a system with a bunch of PCI video cards really is your best bet.  I 
would look harder for those cards.  Someone probably has a bunch laying around 
they would be happy to sell for little or nothing.  Check around campus or 
other companies, or computer parts auctions.  I have 2 or 3 on a shelf 
somewhere.  But the legacy VGA arbiter problem might make the whole thing not 
work http://www.x.org/wiki/VgaArbiter

LCD's aren't exactly cheap.  If you where building this new, the total LCD 
cost would probably be more than the system cost for a 6 display system.  
Probably total new cost of about $1200 for 6 displays.  Can you procure the 
whole thing new?  I expect you could find a single vendor that will sell the 
whole thing.





More information about the xorg mailing list