Interesting link, although to be honest I’m not entirely sure what I’m looking at, as I’m not really a hardware person. It seems they need the exact clock rate to avoid tearing or other effects. So they clock the HDMI output rate to multiple of the incoming video signal. Is that correct?
As for syncing: There’s multiple way to sync and some can be combined:
- You should obviously use NTP, preferably a local service with low latency, so the sync results in a somewhat precise time.
- Optionally, an info-beamer device can be peer-to-peer (P2P) enabled and you can use P2P NTP syncing. Each device will open up its NTP port and neighboring devices will use each other (in an order determined by their IP addresses) to sync from each other. This might help if you otherwise don’t have a local NTP server, as they should all sync to the device with the “lowest” IP address.
- Also optionally you can enable PTP. In tests, it seems it really only works on Ethernet, not WiFi. Using it, devices will usually be in perfect sync and it doesn’t make sense to also use P2P NTP in that case.
Now to the HDMI output. If you have displays with 60Hz, it means each generated output will take 16.6ms. If you power up two random displays and Pis, the maximum offset between each of them generating an output frame will be 8.3ms.
info-beamer can try to sync the vsync interval based on an already sync local time (using the methods above): Enable global vsync, and each Pi will slowly speed up or slow down its HDMI output (so for example 59.99Hz instead of 60Hz) until vsyncs across devices happen at roughly the same time. I’ve seen this working just recently when info-beamer was used to power different parts of a tiled LED wall.
I guess this should have the same effect as modifying the clock rate as linked in the github issue.