Мы уже давно привыкли к тому, что мониторы имеют фиксированную частоту развертки изображения — обычно 60 Гц. Фиксированная частота пошла еще с ЭЛТ-телевизоров, когда видеоряд имел четко заданное количество кадров в секунду — обычно 24. Но вот в играх частота кадров не является постоянной — она может изменяться в очень широких пределах, и из-за того, что частота развертки не совпадает с частотой рендеринга кадров видеокартой, в итоге и появляются разрывы изображения, что мешает комфортному игровому процессу. Это происходит из-за того, что изображение выводится на дисплей даже в том случае, если вывод части предыдущего кадра ещё не закончен полностью — оставшаяся часть буфера приходится на текущее обновление экрана. Именно поэтому каждый выведенный на монитор кадр при несовпадении частот, указанных выше, будет по сути состоять из двух кадров, отрендеренных видеокартой.
Самый простой метод решения проблемы — включение вертикальной синхронизации. Что она делает? Она выводит изображение на монитор только тогда, когда кадр полностью готов. Соответственно, если у вас монитор с 60 Гц, и видеокарта выдает больше 60 fps — вы получаете плавную картинку без единого разрыва и артефакта (при этом видеокарта не будет нагружена на 100%). Но тут уже появляется другая проблема — задержка при выводе изображения. Если монитор обновляется 60 раз в секунду, то на один кадр тратится 16.7 мс, и даже если видеокарта подготовила кадр за 5 мс — монитор все равно будет ждать оставшиеся 11 мс:
Поэтому управление становится «вязким» — при движении мышью отклик на мониторе происходит с небольшой задержкой, поэтому становится труднее позиционировать прицел в шутерах и прочих динамических играх. Еще хуже, если видеокарта не способна выдать в игре 60 fps — к примеру, если fps 50, и включена вертикальная синхронизация, то каждую секунду будет 10 кадров, в которые на экран не будет выведена новая информация, то есть каждую секунду будет 50 кадров с задержкой до 16.7 мс, и 10 кадров с задержкой в 33.4 мс — в итоге картинка будет дерганной, и играть будет невозможно.
Поэтому до недавнего времени у игроков было три варианта — или включать вертикальную синхронизацию (если fps выше 60) и мириться с не самым удобным управлением, или отключать синхронизацию, и терпеть артефакты изображения.
AMD FreeSync и Nvidia G-Sync
Разумеется, крупные компании нашли решение проблемы — они придумали принудительную синхронизацию частоты развертки и рендеринга кадра видеокартой. То есть если видеокарта сделала кадр за 5 мс — монитор выведет предыдущий кадр на 5 мс, ничего не ожидая. Если следующий кадр был отрендерен за 20 мс — монитор опять же будет держать предыдущий кадр на экране 20 мс:
Что это дает? Во-первых, так как монитор выводит полностью готовые кадры и они синхронизированы с частотой развертки, нет никаких артефактов. Во-вторых, так как монитор выводит кадр сразу же, как он был готов, ничего не ожидая, нет никакой «вязкости» управления — изображение на мониторе меняется сразу же, как только вы пошевелили мышью.
Различия между FreeSync и G-Sync
Каждый из вендоров пошел своим путем: у AMD частота развертки контролируется самой видеокартой, а монитор должен быть подключен через DisplayPort. С одной стороны, это плохо — если видеокарта не имеет аппаратной поддержки FreeSync, то вы не сможете им воспользоваться. С учетом того, что эту технологию поддерживают только чипы линейки R7 и R9 начиная с 200ых, а также линейки Fury и RX — за бортом остаются чипы линеек HD 7000, некоторые из которых вообще говоря ничем не отличаются от чипов 200ой линейки (да, банальное переименование). Мобильные версии видеокарт AMD FreeSync вообще не поддерживают, даже если они мощнее десктопных карт, в которых есть его поддержка. С другой стороны, так как по сути весь контроль идет со стороны видеокарты, монитор для FreeSync оказывается дешевле такового с G-Sync на 80-100 долларов, что вполне ощутимо.
Nvidia пошла другим путем — контроль за частотой развертки выполняет сам монитор, в который встроен специальный чип. С одной стороны, это хорошо — поддерживаются видеокарты начиная с GTX 650 Ti, а так же мобильные решения начиная с 965М. С другой стороны — чип стоит денег, поэтому мониторы с G-Sync дороже.
Так же различается и допустимые частоты развертки. У AMD это 9-240 Гц, у Nvidia — 30-144 Гц. Цифра в 9 Гц скорее вызывает улыбку (ибо это слайд-шоу), и 30 у Nvidia в принципе можно считать допустимым минимумом. А вот то, что у Nvidia ограничение на 144 Гц, уже может быть мало, так как топовые игровые мониторы имеют частоту вплоть до 240 Гц. Но, увы, пока что у AMD нет таких видеокарт, которые могут выдать в киберспортивных играх больше 200 fps, так что 240 Гц на данный момент — просто хороший запас на будущее. С другой стороны, если частота кадров в игре опускается ниже минимальной частоты развертки монитора, у AMD просто принудительно выставляется эта частота, то есть мы получаем те же проблемы, что и с вертикальной синхронизацией. Nvidia же сделали хитрее — чип G-Sync может дублировать кадры для того, чтобы попасть в рабочий диапазон частот монитора, так что никаких задержек в управлении или артефактов не будет:
Еще один плюс в сторону AMD — отсутствие небольших задержек при передаче данных на монитор, так как FreeSync использует технологию Adaptive-Sync стандарта DisplayPort для того, чтобы заранее узнать минимальную и максимальную частоту обновления монитора, поэтому передача данных не прерывается на координацию работы видеокарты с модулем G-Sync в мониторе, как у Nvidia. Однако на практике разница оказывается не больше 1-2%, так что этим можно пренебречь.
Разумеется, возникает вопрос — влияют ли технологии синхронизации кадров на производительность в играх? Ответ — нет, не влияют: разница с выключенной синхронизаций и FreeSync или G-Sync оказывается нулевой, и это понятно — по сути эти технологии не заставляют видеокарту обсчитывать больше данных — они просто выводят уже готовые данные быстрее.
В итоге — что же лучше? Как бы смешно это не звучало, но у пользователей нет выбора: те, кто пользуются продукцией «красных», вынуждены использовать FreeSync. Те, кто пользуются продукцией «зеленых», аналогично могут использовать только G-Sync. Но, в принципе, на текущий момент технологии выдают схожий результат, так что выбор действительно заключается только в производителе и мощности видеокарты.