Фактически, причина, по которой Aero может предотвратить разрыв, не вызывая VSYNC в приложении, заключается в том, что это менеджер окон композитинга. Он рисует рабочий стол и все окна асинхронно относительно любого работающего приложения.
То есть, когда вы включаете композитинг в Windows Vista / 7 (он всегда включен в Windows 8), он будет рисовать все окна, используя копию последнего изображения, которое было заменено сзади вперед. Композитор (Microsoft называет его DWM, Desktop Window Manager ) комбинирует все с включенным VSYNC, и поскольку он рисует, используя копию последнего полностью замененного изображения переднего буфера для каждого окна, он никогда не отображает частично нарисованные кадры. Однако у него есть неприятный побочный эффект - он не позволяет действительно старому программному обеспечению, предназначенному исключительно для правильной работы в переднем буфере, работать с современным программным обеспечением.
В двух словах, DWM добавляет дополнительный уровень защиты от разрывов. Тот, который позволит любому приложению, работающему в системе, рисовать со скоростью, независимо от частоты обновления дисплея, и при этом предотвращать разрыв. В такой системе, в оконном режиме, единственное, для чего хорошо использовать VSYNC в OpenGL или Direct3D, - это фактически снизить нагрузку на CPU / GPU.
Вот почему был создан адаптивный VSYNC, идея которого состоит не в том, чтобы наказывать приложения, которые не могут поддерживать частоту обновления дисплея, принудительно устанавливая их в более низкий коэффициент частоты обновления (например, 60 Гц -> 30, 20, 15, 10, 12). , 6, 5, 4, 3, 2, 1), но для ограничения приложений, которые рисуют быстрее, чем монитор может отображать изображения из-за чрезмерного использования мощности ЦП / ГП.
Двойная буферизация + V-синхронизация не приводит к разрыву. Aero использует эту конфигурацию.
источник
DWM (технология, включающая эффект Aero) отображает все на экране в виде поверхности D3D (что позволяет видео продолжать воспроизводиться на Flip). Эта техника рендеринга автоматически предотвращает разрыв , хотя игровой метод должен быть лучше, чем общий метод DWM (в конце концов, это их собственный движок). Так что, скорее всего, игровой метод либо не очень хорош, либо не оптимизирован для вашей конфигурации.
источник