Equalizer logo
Collage logo
GPU-SD logo

Video and Swap Synchronization

Overview

Equalizer provides hardware and software swap barriers to synchronize buffer swaps of multiple windows, potentially residing on different nodes. Together with video synchronization provided by the GPU they ensure a coherent image generation.

Definitions

The following defines the various synchronization terms, since they are often confused in the literature:

What do I need?

Software Swap Synchronization

The software swap barrier uses the network connection between the nodes to synchronize the buffer swap of multiple windows. Additionally, all OpenGL commands are finished to ensure that the buffer swaps happen immediately and without any delay. The software swap barrier does not need any special hardware support.

Multiple windows on the same GPU (pipe) can join the same software swap barrier. A single actual networked barrier operation is used to synchronize all windows of a single GPU, and the windows will all swap buffers immediately.

Software swap synchronization does not perform frame synchronization, but can work with frame synchronization provided by the driver, e.g., using an NVidia G-Syn board. Furthermore a swap command may very occasionally be executed on video too late, because it just missed its turn due to timing issues.

To configure software swap synchronization, define a swapbarrier for each window in the configuration, potentially using giving it a name. All swapbarriers in a single compound tree using the same barrier name will swap together.

Hardware Synchronization

On GPUs which support the NV_swap_group extension, e.g., NVidia Quadro with G-Sync boards, hardware-based swap synchronization is supported by Equalizer. On a single node, all windows join a swap group, which ensures that the buffer swaps happen synchronously. Between systems, all swap groups join the same swap barrier for synchronization.

To configure hardware swap synchronization, define a NV_group and potentially a NV_barrier. All swapbarrier definition using the same group and barrier will be synchronized. Since almost all implementations only support a single group and barrier, the value ON (=1) can be used as a synonym in the configuration file.

File Format

  compound
  {
       swapbarrier 
       { 
           name "barrier-name" // sync's compound's window swap buffers
           NV_group    OFF | ON (1) | unsigned
           NV_barrier  OFF | ON (1) | unsigned
       }
  }