The University of Queensland Homepage
UQ VisLab UQ VisLab

 Streaming X11 to SAGE
Aim

To be able to display individual application windows onto the SAGE display wall. The most effective method of achieving this objective is to rewrite the application to be aware of the SAGE display and write to its graphical output directly. With many interesting and commercial applications, such as MATLAB, a rewrite is not possible without the cooperation of the respective authors/companies.

There are two strategies that can be used to get around the issue of not having the source code of third-party applications. The current application uses the simpler method of grabbing output from the local display and sends it to the SAGE display wall. This method has its own advantages and disadvantages. For example, when more than one window(of size > (1/4)DesktopSize) is to be streamed it is recommended to stream the entire desktop. Doing so will reduce the load on the local(capture) machine and also the network. The simpler method can be extended in certain cases to stream application windows that are obscured behind others on the local display. The complex method involves tricking the application into believing that size of the X display it can use is the same size as the SAGE display wall. If you wish to implement this please do contact us.

WallStream

This application can stream application windows from the local X display to a SAGE display wall. When available it can use shared memory to make the capture slightly faster. Usage is very simple:

  • User runs wallstream
  • User selects a window to stream by clicking on it with the left mouse button

Source code of the current development version can be downloaded here: WallStream-0.1

Notes/issues

  • You will need a local network faster than 100Mbps. This requirement may be eased in future releases, though it seems unlikely.
  • If the streaming is slow, most likely your graphics card is the bottleneck. GPUs like to be "write-only" devices; the AGP bus is asymmetric with a bias towards writing to the GPU. PCIe GPUs have gotten away with this, but note that there is lot of data being moved around(currently alpha channel is also captured!)
  • Future releases will use multithreading to reduce the delay between capture and streaming.