Posting this as a bug because I’m not sure if it is expected behavior or not. I am trying to set up multi-machine sync with the sync in/out CHOPs using PCI based video I/O cards for the video outputs.
My hardware configuration is x1 server machine and x1 client machine. On the server is a TouchDesigner instance generating the sync out frame (real time flag ON) as well as a second instance of TouchDesigner that has sync in CHOP, some video playback, and video device out TOP for output. The client machine also has the same sync in / playback / output configuration.
Once I disable the real-time flag in order to use the sync in CHOP on the clients I experience a gradual decline in performance on the outputs. However during this the TouchDesigner processes do not seem to drop frames and performance monitor on the computer does not show any resource bottlenecks.
I tested this on two IO cards- a Blackmagic Decklink 8K Pro and an AJA Corvid 44. Once disabling the real-time flag the Decklink would degrade in performance over about 30 seconds. The AJA only show intermittent stutters.
This testing was done on the latest TD build (2023.11340).
Can you put down some Info CHOPs on the Sync Out and Sync In nodes, as well as the Video Device Out TOP, and see if any of those channels provide a hint as to where the fault is? Also, if you cause your Movie File In TOP to be driven just internally (sequential mode) instead of via a value coming in via the Sync In CHOP, does that change things? I’m curious where the failure point is occuring.
I set this back up and I think its actually related to a discrepancy between the GUI frame rate and the requested output frame rate on the video device out during my initial testing. Initially I had the GUI at 60, TD process at 24, and video device out signal format at 24. Testing now on a different system everything seems to work fine as long as all the rates match. I will test this on the original system again sometime next week and report back.
I finally got around to testing this again and confirmed that the frame rate of any display connected to a graphics head on the GPU the TD instance is running on needs to match the output framerate specified for the Decklink card. In initial testing I had the GUI at 60, TD project at 24, and Decklink output format at 24. Switching the GUI rate to 24 as well eliminated the performance degrade and we were able to achieve hard sync between multiple nodes with the sync CHOPs for software sync and tri-level genlock into the Decklinks for hardware sync.