Why Sialk · when it breaks

Why Spout goes black, or judders

Why is my Spout feed black, and why does the picture beat?

A shared texture is fast because it never leaves the GPU it was made on. That is the same reason it cannot reach another one.

Black, then judder, then a loop, and never an error. Spout and Syphon are fast because the frame never leaves the GPU, and that is exactly why they fail silently. Three ways it happens, and the one way around all of them.

Black, with no feed

"It's black. No feed is coming through.", spout.discourse.group thread 522

Almost always: the sender and the receiver are on different GPUs. A laptop with Intel graphics and a discrete card will happily put one application on each, and a shared texture cannot cross that boundary, which is precisely why it is fast.

ONE GPU - WORKS GPU sender receiver texture

TWO GPUS - BLACK GPU 1 sender GPU 2 receiver

A shared texture is fast because it never leaves the GPU it was made on. That is the same reason it cannot reach another one.

Force both applications onto the same GPU, on Windows, Graphics settings → per-app preference. Then check what it cost: one report forcing Resolume onto the Intel GPU got a working screen at about 30 fps. Every zero-copy tool meets this, vvvv's browser integration tells you to disable its shared texture as a multi-GPU workaround.

Judder, from a mismatch nothing reports

A 25 fps source in a 30 fps show beats against it. No warning, no log line, and the picture is almost right, so you doubt yourself instead of the setup. Match the rates end to end: sketch, sender, receiver, output.

A feedback loop

Easy to make by accident when the source list and the output are both visible in one application. Check what the sender is actually capturing.

What Sialk does instead

If your show is Resolume, keep Resolume - Sialk and Resolume. Sialk's output is a screen, and every rig takes a screen.