Chapter 7. SwapLockPlugin

Table of Contents

Overview
Configuring SwapLockPlugin

Synchronizing multiple displays is one of the biggest challenges in creating immersive VR on PCs. This is because a single PC does not have enough processing power to generate the graphics for multiple displays in VR systems such as a CAVE. Now that graphics hardware is becoming available to synchronize multiple active stereo PCs or show passive stereo, the design of ClusterJuggler must provide a way for a running applications that distribute across multiple PCs and graphic hardware. Because we are using different machines that may even have different graphics cards, generating the graphics is going to take a different length of time on each machine. While generating the image the graphics hardware places the data into a buffer that is not being displayed. Once the hardware has generated the image it swaps the buffer containing the new data with the buffer that is being displayed. We encounter a synchronization issue when the cluster nodes swap these buffers at different times. This creates a ripping effect that causes the display to appear out of sync. We can combat this issue by sending a signal between all machines when they should swap their buffers. This communication needs to have a very low level of latency, usually on the order of 10-80us.

Overview

The SwapLockPlugin gives the application developer a set of methods which they can choose from while configuring the application.

Synchronization Methods

  • TCP/IP - Uses a socket connection to synchronize the cluster. [Latency:100 us]

  • TCP/IP Serial Hybrid - Uses a socket connection for the slave-to-master communication and a serial connection for the master-to-slave communication. [Latency:80 us]

  • Wired Parallel Port - Uses a kernel module to directly communicate through the parallel port. You are required to have an external device that acts as a simple AND gate. [Latency:10 us]