Lots of Outputs

We regularly get this question. The number varies, but the gist is always the same. People want to use Resolume with lots of outputs, and they're looking for the best option.  It's not an easy question to answer, because there is not a clearcut technical solution. 

We like to help you choose the right option. This document covers most starting situations and will help you choose the best solution for your situation. Here is a list of options in order of preference:

  • A single GPU with x outputs.
  • A single GPU with Datapath extenders.
  • A single GPU with multiple Blackmagic cards.
  • A single GPU with cheap extenders or processors.
  • Multiple GPUs in the same machine.
  • Multiple machines synced via an external protocol.

The order of preference is a combination of how well the setup performs and how reliable it is to set up. In other words, the further down the list you get, the less we recommend using this setup. Keep in mind this recommendation can vary considerably depending on your particular use-case, requirement and skill level.

Flowchart

Let's get started with a simple flowchart:

What do you mean, "extending output ports"?

A graphic card has certain limitations. Let's take the Nvidia GTX 1080 as an example:

  • a maximum amount of ports, in the case of Nvidia, that's 4.
  • a maximum resolution per port, in the case of the GTX 1080, that's 7680x4320
  • a maximum texture size, which is 16384x16384 on most modern GPUs. This in turn translates to: don't worry about it.

When using a TripleHead or Datapath, you use up only one of your available ports. These are extenders, so they take a larger image and then use their own hardware to divide it over its multiple outputs. Since the max resolution per port of your card is well over 4K, you can extend a single port to four times HD on a Datapath or three times 720p on a Matrox (if its firmware supports that). Your computer will see the extender as a single, larger output, in addition to the other outputs you have connected.

When using a MST hub, you can change a single output into three outputs. Each of the outputs will show as an individual discrete display on your computer. An MST hub does not extend your output. This means you are still limited to the maximum number of outputs your GPU supports. Adding a 3-way MST hub to an Nvidia card with a 4 port maximum,means you will only be able to use one other port on the card. The other two will be disabled. For this reason, MST hubs are better suited to add more outputs to a single output card, like laptop GPUs.

When in doubt about the max specs of your GPU, contact the manufacturer.

What do you mean, "frame-sync"?

When each output functions as its own independent surface or collection of surfaces, you have nothing to worry about. Frame-sync will not be an issue. For instance, your stage is made up of 12 LED screens, 8 on the first output, and 4 on the second. In this case, the outputs don't have to be frame-sync.

If you have a surface which is "stitched" together out of two or more projectors, or out of LED screens controlled by multiple processors, frame-sync does matter. 

Without frame-sync, each output will operate on its own timing. This means each output will refresh a few milliseconds before or after its neighbour. This will result in "horizontal tearing" between the screens. For a few milliseconds, one side of the surface will already show the next frame, while the other side is still showing the previous frame.

Most GPU manufacturers have the option to provide sync between GPUs, either via software (Eyefinity, Mosaic) or hardware (Quadro Sync). Blackmagic SDI outputs always require an external hardware reference clock to stay sync.

Single computer with a single GPU

This is always the best, most reliable and best performing option. Resolume does all the rendering on the GPU that has the monitor that is set as the main display on it. By using a single GPU for all outputs, you get the best possible performance.

The downside is that at the moment, there is no good GPU on the market that has more than 6 outputs, which limits you to 5 outputs + 1 control monitor for the user interface.

Nvidia has cards with 8 outputs, but those cards don't pack enough render power to run all outputs at full HD. Matrox has a few cards that have 8 and 16 outputs, but these are for spreadsheet use and don't support the OpenGL extensions necessary to run Resolume.

Note that even on a single GPU,  outputs are not necessarily frame-sync and will still need to be hardware genlocked or software synced to perfectly match up.

Single computer with a single GPU + Datapath

This is the next best thing. By using extenders like the Datapath Fx4, you can extend a single port to multiple outputs. Resolume will think your output just got a lot bigger, so all rendering still goes over your main GPU without any additional performance hits.

Datapath products can either be daisy chained (Fx4) or distributed (X4) and if your GPU has more ports, you can run multiple Datapaths in parallel.

Of course conditions apply. The Datapath is generally pretty reliable to set up, but you have to be very attentive to data bandwidth which is a combination of refresh rate resolution and scanning method (interlaced or progressive). For instance, getting 4K at 60Hz is only available on the Fx4 model and will require that you use the right DisplayPort cables. 

Also keep in mind that a Datapath cannot extend beyond the maximum output resolution of your output port. When in doubt, please contact your Datapath sales point about compatibility

Single computer with a single GPU + Blackmagic Quad 2

Blackmagic has several cards that can output video streams. They have PCIe cards or USB/Thunderbolt dongles with 1, 2, 4 or 8 outputs in full duplex mode. Cards can also be combined.

The added advantage is that, depending on the card, you get the option to output via 3G, 6G or 12G SDI, which is not available on any consumer graphic cards.

The downside is that instead of outputting from the GPU directly, the pixel data has to travel to the Blackmagic device. This will result in a delay of 60 ms or more. Especially when using the Blackmagic outputs in combination with regular GPU outputs, this will result in noticeable sync differences.

The other downside is that you are limited to broadcast resolutions (PAL, NTSC, 720p, 1080i, 1080p, 2160p). Typical computer resolutions such as XGA (1024x768), WXGA (1280x800) or WUXGA (1920x1200) are not supported. 

Setting up a Duo 2 or Quad 2 card to use all 4 or 8 ports as outputs requires some fiddling in Blackmagic's own Desktop Video Utility.

Single computer with single GPU + MST hub

(or Zotac, or Matrox TripleHead, or USB to HDMI dongles).

These are pretty much value for price and if you can get them to work, they're great! Getting them to work can be very hit or miss though. What works on one system doesn't necessarily work on another. Some of them work on both Mac and PC, but only on AMD cards and not Nvidia, while others will support both Nvidia and AMD but only on PC, some will work with Displayport 1.2 but not Displayport 1.1, some will work only with HDMI connectors but not via a Displayport to HDMI adapter, etc etc. It's a minefield.

Keep in mind that MST hubs will not give you more outputs than the card natively supports. For instance you can't use three MST hubs with a GTX 1080 to get 10 outputs. This means not more than 6 outputs in AMD R9 series and not more than 4 outputs in Nvidia GTX series. Even when you have ports left! This is a physical limitation of the GPU architecture, and your computer will blue screen when connecting more outputs than the card supports.

Tip! For Resolume, it makes absolutely zero difference if you are using an extender to create a bigger output, or are using multiple discrete outputs via the card itself. On both options, you will be able to use all the available features for slicing, masking and blending. People that say otherwise don't actually know what they're talking about.

When in doubt, please contact your extender sales point about compatibility.

Single computer with two GPUs

This works in most cases. Keep in mind, there is always a performance hit by adding extra cards, and having two cards doesn't mean you can do twice as much. Quite the opposite.

Resolume let's your operating system decide how to render. This is great, because this means that if your OS can detect the displays, you can use them in Resolume. New cards will work immediately, and you don't have to wait on us to add support for them.

There are a few exceptions where multiple AMD cards in a PC will not sit nice with our OpenGL rendering. Creating an Eyefinity group with all cards usually works around these problems, but it's a problematic set up, because your main monitor becomes part of the Eyefinity group.

Letting the operating system decide how to render also means that the OS decides what card is used for rendering. Most of the time, this will be the card that has the main monitor on it.

So when using the outputs of the other card, the texture is first rendered on the rendering card. It then has to be transferred down the PCIe lanes of the rendering card, via the motherboard, up the PCIe lanes of the other card, and then sent out the ports. This will always result in a performance hit. The more cards you add, the bigger this hit will be.

Why SLI/Crossfire is a bad idea

SLI / Crossfire is not supported in Resolume. Most people think they can use SLI to get more outputs. This is not the case.

SLI and Crossfire are designed to let multiple GPUs combine forces for more rendering power and work as master/slave(s) setups. Using SLI/Crossfire does not give you more outputs. When SLI/Crossfire is enabled, the outputs of the slave card(s) are disabled, or at least outputs are reconfigured in such a way that you do not get more outputs than from a single card.

In addition, the extra render power is not really relevant for Resolume. The GPU is used extensively in Resolume, but it is usually not the bottleneck. Unless you are running a 100% generative set with realtime raycasting at 4K, or cutting up dozens of 16K by 16K textures, you don't need the extra GPU power for rendering.

Multiple computers synced via external protocol

This can be a great solution, especially when scalability is required.

The downside is that this requires considerable tinkering, and is best achieved using 3rd party control tools. It's not an "out-of-the-box" solution. 

Keep in mind that using protocols such as SMPTE Timecode or OSC to sync the playhead of a clip on each computer, may not necessarily result in frame synced combined output. Each computer is running its own processes, so it maybe slightly quicker or slower in decoding the sync signal, fetching the pixel data from disk, or rendering and outputting the final result. 

Especially when edge blending two computers together, or when seamlessly stitching them together in a single LED wall, there will be noticeable difference between frames.