У меня есть приложение логики, которые увеличивают счетчик целых чисел. Этот счетчик должен отображаться двумя независимыми приложениями. Каждое графическое приложение создает окно с контекстом opengl. Логическое приложение связывается с графическими приложениями через сеть, и между отправкой фактического значения счетчика может быть задержка в несколько миллисекунд:
for(const auto& graphicsAppHandle: graphicsApps)
{
graphicsAppHandle.updateCounter(counter);
}
Я хочу синхронизировать счетчик рендеринга. Как этого добиться?
Это нетривиальная задача. Эта проблема имеет много аспектов, и решение будет сильно различаться в зависимости от ваших требований к точному времени, а также от аппаратной и программной среды. Я работал с людьми, которые посвятили, возможно, 40% своей постоянной работы обработке синхронизации изображений на нескольких устройствах генерации изображений.
Линейка графических карт Quadro от Nvidia поддерживает синхронизацию через общий источник мастер-сигнала. Обратите внимание, что вам придется платить гораздо больше за ваши видеокарты, чем вы, вероятно, привыкли, если вы идете с Quadros.
Поисковыми терминами, относящимися к тому, что вы хотите сделать, являются «блокировка кадра» и «genlock».
Других решений пока нет …