Что такое вертикальная синхронизация. VSync: Vertical Synchronization (Вертикальная синхронизация)

Наверное, нет такого владельца компьютера, которому был бы незнаком термин «вертикальная синхронизация». Одни пользователи знакомятся с ним, стремясь увеличить производительность графической подсистемы, другие же - из простого любопытства, чтобы досконально изучить принцип работы компонентов вычислительной машины.

Вертикальная синхронизация может быть откорректирована в настройках драйвера видеокарты от любого производителя (Intel, AMD, NVidia). Если в первых версиях данная возможность была опциональной, то есть для ее активации требовалось использование вспомогательных программ или внесение изменений в реестр операционной системы, то впоследствии она была вынесена отдельным пунктом.

Доступная корректировка

В системах от «Майкрософт» доступ к данной настройке очень прост и, как правило, стандартен. Необходимо нажать правую кнопку мышки на любом свободном участке рабочего стола и выбрать «Разрешение экрана» (Win 7-8). Если в отобразившемся окошке нажать ссылку «Дополнительные параметры», то в группе верхних вкладок обязательно будет присутствовать панель управления видеоадаптером. Выбрав ее, пользователь увидит меню настроек драйвера, в одном из пунктов которого присутствует «вертикальная синхронизация». Точное расположение и название указать нельзя, так как это зависит от разработчика, но ошибиться, тем не менее, невозможно. Так, это может быть «Vsync», «Синх. по вертикали», «Синхронизация» и пр. Хотя обычно параметр может принимать одно из двух значений, иногда встречаются решения с тремя. Например, вертикальная синхронизация ATI допускает не только варианты «Разрешить/Запретить», но и режим «Авто».

В этом случае выбор предоставляется драйверу и работающему приложению. Однако смысл остается тем же самым, разве что управление предоставляется программе, а не человеку.

Производительности много не бывает

Любители виртуальных баталий знают, что правильно выставленная вертикальная синхронизация в играх во многих случаях может значительно поднять частоту кадров, выводимых видеоадаптером на экран монитора. Фактически это означает, что иногда таким способом удается отсрочить необходимость покупки новой видеокарты (хотя, конечно, чудес ждать не стоит). Именно поэтому мы рекомендуем выставить такой режим, при котором вертикальная синхронизация запрещена. Такое решение объясняется просто: ценители идеальной картинки вряд ли будут бороться за каждый лишний «fps» и читать о синхронизации, так как в их компьютерах установлены мощные видеоадаптеры, ну а владельцам «слабых» видеокарт более интересен сам игровой процесс, а не «тормозящие» красоты графики. Страшные полосы на изображениях, которыми любят пугать различные информационные ресурсы, в действительности практически незаметны.

Тайна, которой нет

Несмотря на то, что повышение производительности «из воздуха» на первый взгляд кажется чем-то невероятным, на самом деле все очевидно. В выводе видеосигнала на экран принимают участие два ключевых компонента: видеокарта и электроника монитора.

Последний, как известно, кроме прочего, характеризуется частотой кадровой развертки (у бюджетных ЖК чаще всего это 60 Гц). Она указывает, как много полных «экранов» может быть отображено за одну секунду. Видеоадаптер также передает на монитор не непрерывный поток данных, а последовательность сформированных кадров. Нетрудно понять, что пока электроника устройства отображения в состоянии вывести на экран все переданные кадры, проблем не возникает.

Некоторые нюансы

Если же вычислительная мощь видеопроцессора настолько велика, что количество кадров превышает возможности монитора, то начинаются срывы синхронизации (на экран могут выводиться картинки, сформированные из двух ближайших кадров). Это проявляется в единичных горизонтальных полосах на движущемся изображении: картинка словно склеена из двух частей. При этом об идеально «гладком» кадре можно забыть. Для решения этого вопроса можно приобрести монитор, частота кадровой развертки которого будет превышать 100 Гц (современные системы), или включить синхронизацию в драйвере. При этом видеоадаптер начнет контролировать кадры экрана: подача на вывод каждого последующего будет происходить лишь по окончании отрисовки предыдущего. Недостаток очевиден: видеокарта будет простаивать, ожидая завершения работы монитора. Собственно, название параметра в данном случае говорит само за себя: «синхронизация» от «синхронно», когда две частоты равны.

Развенчиваем мифы о производительности видеокарт | Включать или не включать V-Sync – вот в чём вопрос

При оценке видеокарт первым параметром, который хочется сравнить, является быстродействие. Насколько самые современные и самые быстрые решения обгоняют предыдущие продукты? Всемирная сеть пестрит данными тестирований, проведёнными тысячами онлайн-ресурсов, которые пытаются ответить на этот вопрос.

Итак, давайте начнём с изучения быстродействия и факторов, которые стоит учесть, если вы действительно желаете узнать, насколько быстра конкретная видеокарта.

Миф: частота кадров – это индикатор уровня графической производительности

Начнём с фактора, который нашим читателям, скорее всего, уже известен, но многие по-прежнему имеют неправильное представление о нём. Здравый смысл подсказывает, что пригодной для игры считается частота кадров 30 FPS и выше. Некоторые люди считают, что и меньшие значения сойдут для нормального геймплея, другие настаивают, что даже 30 FPS – это слишком мало.

Однако в спорах не всегда очевидно, что FPS – это просто частота, за которой кроются некоторые сложные материи. Во-первых, в фильмах частота постоянная, а в играх она изменяется, и, как следствие, выражается средним значением. Колебания частоты являются побочным продуктом мощи видеокарты, требуемой для обработки сцены, и с изменением контента на экране изменяется частота кадров.

Всё просто: качество игрового опыта важнее, чем высокий показатель средней частоты кадров. Стабильность подачи кадров – ещё один крайне важный фактор. Представьте себе поездку по шоссе с постоянной скоростью 100 км/ч и ту же поездку со средней скоростью 100 км/ч, при которой много времени уходит на переключение передач и торможение. В назначенное место вы приедете в одно время, но вот впечатления от поездки будут сильно различаться.

Так что давайте на время отложим вопрос "Какой уровень производительности будет достаточным?" в сторону. Мы вернёмся к нему после того, как обсудим другие важные темы.

Представляем вертикальную синхронизацию (V-sync)

Мифы: Необязательно иметь частоту кадров выше 30 FPS, поскольку человеческий глаз не видит разницу. Значения выше 60 FPS на мониторе с частотой обновления 60 Гц необязательны, поскольку картинка уже отображается 60 раз в секунду. V-sync всегда нужно включать. V-sync всегда нужно выключать.

Как на самом деле отображаются визуализированные кадры? Почти все ЖК-мониторы работают таким образом, что изображение на экране обновляется фиксированное количество раз в секунду, как правило, 60. Хотя есть модели способные обновлять картинку на частоте 120 и 144 Гц. Данный механизм называется частота обновления и измеряется в герцах.

Расхождение между меняющейся частотой кадров видеокарты и фиксированной частотой обновления монитора может стать проблемой. Когда частота кадров выше частоты обновления, за одно сканирование могут отображаться несколько кадров, что приводит к артефакту под названием "разрыв экрана". На изображении выше цветные полосы подчёркивают отдельные кадры из видеокарты, которые по готовности вывелись на экран. Это может сильно раздражать, особенно в активных шутерах от первого лица.

На изображении ниже показан ещё один артефакт, часто появляющийся на экране, но трудно фиксируемый. Поскольку данный артефакт связан с работой дисплея, на скриншотах его не видно, а вот невооружённым глазом он хорошо заметен. Чтобы его поймать, нужна высокоскоростная видеокамера. Утилита FCAT, которую мы использовали для захвата кадра в Battlefield 4 , показывает разрыв, но не эффект гоустинга.

Разрыв экрана очевиден на обоих изображениях из BioShock Infinite. Однако на панели Sharp с частотой обновления 60 Гц он проявляется гораздо явнее, чем на мониторе Asus с частотой обновления 120 Гц, поскольку частота обновления экрана VG236HE вдвое выше. Данный артефакт является самым явным свидетельством того, что в игре не включена вертикальная синхронизация, или V-sync.

Второй проблемой на изображении BioShock является эффект гоустинга, который хорошо заметен в нижней части левого изображения. Этот артефакт связан с задержкой вывода изображения на экран. Если коротко: отдельные пиксели недостаточно быстро меняют цвет, и так появляется данный тип послесвечения. Этот эффект в игре проявляется гораздо ярче, чем показано на изображении. Время отклика от серого к серому у панели Sharp слева составляет 8 мс, и при быстрых движениях изображение кажется размытым.

Вернёмся к разрывам. Вышеупомянутая вертикальная синхронизация – это довольно старое решение проблемы. Оно заключается в синхронизации частоты, на которой видеокарта подаёт кадры, с частотой обновления монитора. Поскольку несколько кадров одновременно больше не появляется, разрывов тоже не наблюдается. Но если на максимальных графических настройках вашей любимой игры частота кадров упадёт ниже 60 FPS (или ниже значения частоты обновления вашей панели), то эффективная частота кадров будет скакать между кратными значениями частоты обновления, как показано ниже. Это ещё один артефакт под названием притормаживание.

Один из старейших споров в интернете касается вертикальной синхронизации. Кто-то настаивает, что технологию всегда нужно включать, кто-то уверен, что её всегда нужно выключать, а кто-то выбирает настройки в зависимости от конкретной игры.

Так включать или не включать V-sync?

Предположим, вы принадлежите к большинству и используете обычный дисплей с частотой обновления 60 Гц:

  • Если вы играете в шутеры от первого лица и/или у вас наблюдаются проблемы с воспринимаемой задержкой ввода, и/или ваша система не может постоянно поддерживать минимум 60 FPS в игре, и/или вы тестируете видеокарту, то вертикальную синхронизацию нужно выключать.
  • Если ни один из вышеперечисленных факторов вас не касается, и вы наблюдаете заметные разрывы экрана, то вертикальную синхронизацию нужно включить.
  • Если вы не уверены, лучше оставить V-sync выключенной.
Если вы используете игровой дисплей с частотой обновления 120/144 Гц (если у вас есть один из таких дисплеев, вполне вероятно, что вы купили его как раз из-за высокой частоты обновления):
  • Включать вертикальную синхронизацию следует только в старых играх, в которых геймплей проходит на частоте кадров выше 120 FPS, и вы постоянно сталкиваетесь с разрывами экрана.

Обратите внимание, что в некоторых случаях эффект снижения частоты кадров из-за V-sync не проявляется. Такие приложения поддерживают тройную буферизацию, хотя данное решение не очень распространено. Также в некоторых играх (например, The Elder Scrolls V: Skyrim), V-sync активирована по умолчанию. Принудительное отключение посредством модификации некоторых файлов приводит к проблемам с игровым движком. В таких случаях лучше оставить вертикальную синхронизацию включённой.

G-Sync, FreeSync и будущее

К счастью, даже на самых слабых компьютерах задержка ввода не будет превышать 200 мс. Поэтому наибольшее влияние на результаты игры имеет ваша собственная реакция.

Однако с ростом различий в задержке ввода их влияние на геймплей растёт. Представьте себе профессионального геймера, чью реакцию можно сравнить с реакцией лучших пилотов, то есть 150 мс. Задержка ввода на 50 мс означает, что человек будет реагировать на 30% медленнее (это четыре кадра на дисплее с частой обновления 60 Гц) своего оппонента. На профессиональном уровне это весьма заметная разница.

Для простых смертных (включая наших редакторов, показавших результат 200 мс в визуальном тесте) и для тех, кому больше нравится играть в Civilization V, а не в Counter Strike 1.6, всё немного иначе. Вполне вероятно, вы вообще можете игнорировать задержку ввода.

Вот некоторые факторы, которые могут ухудшить показатель задержки ввода при прочих равных условиях:

  • Игра на HDTV (особенно если отключён режим игры) или игра на ЖК-дисплее со средствами обработки видео, которые нельзя отключить. Упорядоченный список показателей задержек ввода различных дисплеев можно найти в базе данных DisplayLag .
  • Игра на ЖК-дисплеях, использующих панели IPS с более высоким временем отклика (обычно 5-7 мс G2G), вместо панелей TN+Film (1-2 мс GTG) или ЭЛТ-дисплеев (самые быстрые из доступных).
  • Игра на дисплеях с низкой частотой обновления. Новые игровые дисплеи поддерживают 120 или 144 Гц.
  • Игра при низкой частоте кадров (30 FPS – это один кадр каждые 33 мс; 144 FPS – один кадр каждые 7 мс).
  • Использование USB-мышки с низкой частотой опроса. Время цикла на частоте 125 Гц составляет около 6 мс, что в среднем даёт задержку ввода около 3 мс. В то же время, частота опроса игровой мыши может доходить до 1000 Гц, при этом задержка ввода в среднем составит 0,5 мс.
  • Использование клавиатуры низкого качества (как правило, задержка ввода клавиатуры составляет 16 мс, но в дешёвых моделях может быть и выше).
  • Активация V-sync, особенно в сочетании с тройной буферизацией (существует миф, что Direct3D не включает тройную буферизацию. На самом деле, Direct3D учитывает опцию нескольких фоновых буферов, но немногие игры её используют). Если вы технически подкованы, можете ознакомиться с рецензией Microsoft (англ.) по этому поводу.
  • Игра с высоким временем предварительной визуализации. По умолчанию очередь в Direct3D составляет три кадра или 48 мс при частоте 60 Гц. Это значение может увеличиваться до 20 кадров для большей "плавности" и понижаться до одного кадра для повышения отзывчивости за счёт повышения колебаний времени кадра и, в некоторых случаях, общей потери в показателях FPS. Нулевого параметра не существует. Ноль просто сбрасывает настройки на исходное значение, равное трём кадрам. Если вы технически подкованы, можете ознакомиться с рецензией Microsoft (англ.) по этому поводу.
  • Высокая задержка интернет-соединения. Хотя это не совсем относится к определению задержки ввода, оно всё же заметно на неё влияет.

Факторы, которые не влияют на задержку ввода:

  • Использование клавиатуры с разъёмом PS/2 или USB (смотрите дополнительную страницу в нашем обзоре "Five Mechanical-Switch Keyboards: Only The Best For Your Hands" (англ.)).
  • Использование проводного или беспроводного сетевого соединения (проверьте пинг вашего маршрутизатора, если не верите; пинг не должен превышать 1 мс).
  • Использование SLI или CrossFire. Более длинные очереди визуализации, необходимые для реализации этих технологий, компенсируются более высокой пропускной способностью.

Вывод: задержка ввода важна только для "быстрых" игр и действительно играет значимую роль на профессиональном уровне.

На задержку ввода влияют не только технология дисплея и видеокарта. Железо, настройки железа, дисплей, настройки дисплея и настройки приложения – всё это вносит свою лепту в данный показатель.

Развенчиваем мифы о производительности видеокарт | Мифы о видеопамяти

Видеопамять отвечает за разрешение и настройки качества, но не увеличивает скорость

Производители часто используют видеопамять в качестве маркетингового инструмента. Поскольку геймеров убедили, что больше – значит лучше, мы часто видим видеокарты начального уровня, объём оперативной памяти у которых значительно больше, чем нужно на самом деле. Но энтузиасты знают, что самое важное – это баланс, причём во всех комплектующих ПК.

В широком смысле видеопамять относится к дискретному GPU и задачам, которые он обрабатывает, независимо от системной памяти, установленной в материнскую плату. На видеокартах используются несколько технологий оперативной памяти, самые популярные из которых – это DDR3 и GDDR5 SDRAM.

Миф: видеокарты с 2 Гбайт памяти быстрее моделей с 1 Гбайт

Не удивительно, что производители оснащают недорогие графические ускорители большим объёмом памяти (и получают более высокую прибыль), поскольку многие люди верят, что больший объём памяти прибавит скорости. Давайте разберёмся в этом вопросе. Объём видеопамяти видеокарты не влияет на её быстродействие, если вы не выбираете игровые настройки, которые используют весь доступный объём памяти.

Но для чего тогда нужна дополнительная видеопамять? Чтобы ответить на этот вопрос, необходимо выяснить для чего она используется. Список упрощённый, но полезный:

  • Прорисовка текстур.
  • Поддержка буфера кадров.
  • Поддержка буфера глубины ("Z Buffer").
  • Поддержка других ресурсов, которые требуются для визуализации кадра (карты теней и др.).

Конечно, размер текстур, которые загружаются в память, зависит от игры и настроек детализации. Например, пакет текстур высокого разрешения в Skyrim включает 3 Гбайт текстур. Большинство игр динамически загружают и выгружают текстуры при необходимости, однако не все текстуры должны находиться в видеопамяти. А вот текстуры, которые должны визуализироваться в конкретной сцене, должны быть в памяти.

Фрейм-буфер используется для хранения изображения в том виде, в котором оно визуализируется перед тем или во время того, как отправляется на экран. Таким образом, необходимый объём видеопамяти зависит от выходного разрешения (изображение в разрешении 1920x1080 пикселей по 32 бита на пиксель "весит" около 8,3 Мбайт, а 4K-изображение в разрешении 3840x2160 пикселей по 32 бита на пиксель – уже около 33,2 Мбайт) и количества буферов (минимум два, реже три и больше).

Особые режимы сглаживания (FSAA, MSAA, CSAA, CFAA, но не FXAA или MLAA) эффективно повышают количество пикселей, которые должны быть визуализированы, и пропорционально увеличивают общий объём требуемой видеопамяти. Сглаживание на базе рендеринга оказывает особенно больше влияние на потребление памяти, которое возрастает с ростом размера выборки (2x, 4x, 8x и т.д.). Дополнительные буферы также занимают видеопамять.

Таким образом, видеокарта с большим объёмом графической памяти позволяет:

  1. Играть на более высоких разрешениях.
  2. Играть на более высоких параметрах качества текстур.
  3. Играть при более высоких уровнях сглаживания.

Теперь разрушаем миф.

Миф: вам нужно 1, 2, 3, 4 или 6 Гбайт видеопамяти для игр на (вставьте родное разрешение вашего дисплея).

Самый важный фактор, который нужно учесть при выборе объёма оперативной памяти, - это разрешение, на котором вы будете играть. Естественно, более высокое разрешение требует больше памяти. Вторым важным фактором является использование упомянутых выше технологий сглаживания. Другие графические параметры имеют меньшее значение в отношении объёма требуемой памяти.

Прежде чем мы перейдём к самим измерениям, позвольте вас предупредить. Есть особый тип видеокарт класса high-end с двумя GPU (AMD Radeon HD 6990 и Radeon HD 7990 , а также Nvidia GeForce GTX 590 и GeForce GTX 690 ), которые оснащаются определённым количеством памяти. Но в результате использования конфигурации из двух GPU данные, по сути, дублируются, разделяя эффективный объём памяти надвое. Например, GeForce GTX 690 с 4 Гбайт ведёт себя, как две карты по 2 Гбайт в SLI. Более того, когда вы добавляет вторую карту в конфигурацию CrossFire или SLI, видеопамять массива не удваивается. Каждая карта оставляет за собой только свой объём памяти.

Вертикальная синхронизация (VSync : Vertical Synchronization) - это опциональный параметр поведения драйвера видеокарты. Включённая вертикальная синхронизация означает, что после отрисовки очередного кадра, во время переключения буферов (функция SwapBuffers() в ) драйвер будет ждать начала очередного обратного хода луча монитора, и только потом переключит экранные буферы.

Картинка на мониторах с электронно-лучевой трубкой отрисовывается лучом из электронов, который последовательно отрисовывает строки слева направо, потом возвращается в начало очередной строки (задержка горизонтальной синхронизации ), затем отрисовывает следующую строку и т.п. После того, как луч попал в правый нижний угол экрана, он возвращается в левый верхний угол (время, за которое он возвращается, называется задержкой вертикальной синхронизации ). (На самом деле, в цветных мониторах три луча - R, G, B, но принцип тот же.)

Зачем нужна вертикальная синхронизация? Дело в том, что время задержки вертикальной синхронизации обратного хода луча является идеальным для переключения экранных буферов. Если переключить буферы в любое другое время, то часть изображения на экране будет принадлежать старому кадру, а часть - новому. Из-за этого появятся артефакты «файтинга» между кадрами - может стать заметным неприятное дрожание, и даже при высоких анимация визуально не будет выглядеть плавной.

Однако, так как при вертикальной синхронизации делается задержка, то FPS неизбежно будет меньше, чем на аналогичной сцене, но с выключенным vsync. Это иногда неприемлемо, например, в разнообразных графических тестах.

Ручное включение или отключение вертикальной синхронизации.

Включить или выключить vsync обычно можно в настройках драйвера видеокарты. Открываете Display Properties (правой кнопкой мыши кликаете по декстопу и выбираете пункт выпадающего меню Properties), выбираете последнюю закладку Settings, нажимаете кнопку Advanced, находите настройки для ожидания вертикальной синхронизации (Wait for Vertical Sync), отключаете или включаете.

Программное включение или отключение вертикальной синхронизации.

Чтобы программно включить или выключить VSync в OpenGL, выполните следующий код.

В форумах, посвященных настройке видеокарт, с завидной регулярностью появляются вопросы, посвященные тому, стоит ли включать в драйверах карт так называемую вертикальную синхронизацию или нет. О том, что это такое, и зачем это нужно - читайте в этой статье.

Наверняка многие любители компьютерных игр сталкивались с рекомендацией отключать в играх так называемую "вертикальную синхронизацию" или VSync в настройках видеокарты. Во многих тестах производительности графических контроллеров отдельно подчеркивается, что тестирование производилось при отключенной VSync. Что же это такое, и зачем оно нужно, если многие "продвинутые специалисты" советуют отключать эту функцию?

Чтобы понять смысл вертикальной синхронизации, необходимо совершить небольшой экскурс в историю. Первые компьютерные мониторы работали с фиксированными разрешениями и с фиксированными частотами развертки. С появлением мониторов EGA появилась необходимость выбора различных разрешений, что обеспечивалось двумя режимами работы, которые задавались полярностью сигналов синхронизации изображения по вертикали. Мониторам, поддерживающим разрешение VGA и выше, потребовалась уже точная настройка частот развертки. Для этого использовались уже два сигнала, отвечающие за синхронизацию изображения как по горизонтали, так и по вертикали. В современных мониторах за подстройку развертки в соответствии с установленным разрешением отвечает специальная микросхема-контроллер.


Для чего же в настройках видеокарт сохранен пункт "вертикальная синхронизация", если монитор способен автоматически настраиваться в соответствии с установленным в драйвере режимом? Дело в том, что, несмотря на то, что видеокарты способны генерировать очень большое число кадров в секунду, мониторы не могут его качественно отображать, в результате чего возникают различные артефакты: полосность и "рваное" изображение. Чтобы этого избежать, в видеокартах предусматривается режим предварительного опроса монитора о его вертикальной развертке, с которой и синхронизируется число кадров в секунду - всем знакомые fps. Иными словами, при частоте вертикальной развертки 85 Гц число кадров в секунду в любых играх не будет превышать восьмидесяти пяти.


Частота вертикальной развертки монитора означает, сколько раз обновляется экран с изображением в секунду. В случае с дисплеем на основе электронно-лучевой трубки, сколько бы кадров в секунду не позволял "выжать" из игры графический ускоритель, частота развертки физически не может быть выше установленной. В жидкокристаллических мониторах не существует физического обновления всего экрана: здесь отдельные пиксели могут светиться или не светиться. Однако сама технология передачи данных через видеоинтерфейс предусматривает, что на монитор от видеокарты передаются кадры с определенной скоростью. Поэтому, с долей условности, понятие "развертки" применимо и к ЖК-дисплеем.


Откуда же появляются артефакты изображения? В любой игре количество генерируемых кадров в секунду постоянно меняется, в зависимости от сложности картинки. Поскольку частота развертки у монитора постоянная, рассинхронизация между fps, передаваемыми видеокартой, и скоростью обновления монитора приводит к искажению изображения, которое как бы разделяется на несколько произвольных полос: одна часть из них успевает обновиться, а другая - нет.


К примеру, монитор работает с частотой развертки 75 Гц, а видеокарта в какой-либо игре генерирует сто кадров в секунду. Иными словами, графический ускоритель работает примерно на треть быстрее, чем система обновления монитора. За время обновления одного экрана карта вырабатывает 1 кадр и треть следующего - в результате на дисплее прорисовывается две трети текущего кадра, а его треть заменяется третью кадра следующего. За время очередного обновления карта успевает сгенерировать две трети кадра и две трети следующего, и так далее. На монитор же в каждые два из трех тактов развертки мы наблюдаем треть изображения от другого кадра - картинка теряет плавность и "дергается". Особенно заметен этот дефект в динамичных сценах или, например, когда ваш персонаж в игре осматривается.


Однако было бы в корне неправильным считать, что если видеокарте запретить генерировать более 75 кадров в секунду, то с выводом изображения на дисплей с частотой вертикальной развертки 75 Гц все было бы в порядке. Дело в том, что в случае с обычной, так называемой "двойной буферизацией", кадры на монитор поступают из первичного кадрового буфера (front buffer), а сам рендеринг осуществляется во вторичном буфере (back buffer). По мере заполнения вторичного буфера кадры поступают в первичный, однако поскольку операция копирования между буферами занимает определенное время, если обновление развертки монитора придется на этот момент, подергивания изображения все равно избежать не удастся.


Вертикальная синхронизация как раз и решает эти проблемы: монитор опрашивается на предмет частоты развертки и копирование кадров из вторичного буфера в первичный запрещается до того момента, пока изображение не обновится. Эта технология прекрасно работает, когда скорость генерации кадров в секунду превышает частоту вертикальной развертки. Но как же быть, если скорость рендеринга кадров падает ниже частоты развертки? К примеру, в некоторых сценах у нас число fps снижается со 100 до 50.


В этом случае происходит следующее. Изображение на мониторе обновилось, первый кадр копируется в первичный буфер, а две трети второго "рендерятся" во вторичном буфере, после чего следует очередное обновление изображения на дисплее. В это время видеокарта заканчивает обработку второго кадра, который она еще не может отправить в первичный буфер, и происходит очередное обновление изображение тем же самым кадром, который все еще хранится в первичном буфере. Потом все это повторяется, и в результате мы имеем ситуацию, когда скорость вывода кадров в секунду на экран в два раза ниже, чем частота развертки и на треть ниже потенциальной скорости рендеринга: видеокарта сначала "не успевает" за монитором, а потом ей, напротив, приходится ожидать, пока дисплей повторно заберет кадр, хранящийся в первичном буфере, и пока во вторичном буфере освободится место для расчета нового кадра.


Получается, что в случае с вертикальной синхронизацией и двойной буферизацией качественное изображение мы может получить только в том случае, когда число кадров в секунду равно одному из дискретной последовательности значений, рассчитываемых как соотношение частоты развертки к некоторому положительному целому числу. К примеру, при частоте обновления 60 Гц число кадров в секунду должно быть равным 60 или 30 или 15 или 12 или 10 и т.д. Если потенциальные возможности карты позволяют генерировать менее 60 и более 30 кадров в секунду, то реальная скорость рендеринга будет падать до 30 fps.


Вернемся к нашему примеру с частотой развертки 75 Гц и 100 кадрам в секунду. При включении вертикальной синхронизации артефакты изображения пропадают. Когда скорость рендеринга в особо сложных сценах снижается примерно до 60 fps и включена VSync, реальная же скорость расчета кадров падает почти вдвое. Иными словами, вертикальная синхронизация в сочетании с двойной буферизацией хороша только тогда, когда скорость рендеринга не падает ниже частоты развертки, поскольку в других случаях производительность резко падает.


Согласитесь, было странным, если бы инженеры не нашли решения этой проблемы. Чтобы скорость рендеринга не падала из-за ожидания, пока освободится первичный буфер, была разработана технология тройной буферизации - то есть в описанную выше схему был добавлен еще один кадровый буфер. Благодаря этому карта может не дожидаться освобождения первичного буфера и рассчитывать картинку в этом третьем буфере.


Работает тройная буферизация следующим образом (при скорости рендеринга 50 кадров в секунду и частоте обновления монитора 75 Гц). Первый кадр находится в первичном буфере, две трети второго кадра обрабатываются во вторичном буфере. После обновления экрана первым кадром во вторичный буфер поступает последняя треть второго кадра, а треть третьего кадра начинает "рендериться" в третьем буфере. После второго обновления экрана первым кадром второй кадр копируется в первичный буфер, а первая треть третьего кадра перемещается во вторичный буфер. Оставшиеся две трети кадра номер три обрабатываются в третьем буфере, происходит первое обновление экрана вторым кадром, а кадр три полностью переносится во вторичный буфер. Затем этот процесс повторяется с начала.


Как нетрудно подсчитать, в данном случае два кадра выводятся на экран за три цикла обновления, что составляет две трети от частоты развертки, то есть, 50 кадров в секунду, а это и есть полная потенциальная скорость рендеринга для рассматриваемого примера. Благодаря схеме тройной буферизации минимизируется время простоя видеокарты, и, как видим, это дает очень хорошие результаты.


К сожалению, тройную буферизацию поддерживают далеко не все компьютерные игры. К тому же, она отнимает вычислительные ресурсы и определенную часть видеопамяти. Однако пока альтернативы этой технологии для получения высококачественного изображения при низкой скорости рендеринга не существует.


После прочтения этого материала у некоторых может возникнуть вопрос: так стоит задействовать вертикальную синхронизацию в настройках видеокарты или лучше все-таки ее отключить. Однозначного ответа на этот вопрос нет. Очевидно, что если вы просто хотите посмотреть, на что способна ваша видеокарта и "прогнать" какие-то синтетические или игровые тесты, то VSync лучше отключить. В этом случае вы не собираетесь наслаждаться картинкой или игровым процессом, а просто хотите получить информацию о максимальной производительности видеокарты в тех или иных единицах измерения. Кстати, все тестирования графических процессоров проводятся с отключенной вертикальной синхронизацией, поэтому в реальных игровых ситуациях карта может оказаться заметно медленней, чем о ней отзывались в том или ином тесте.


Если вы хотите получить максимальное качественное изображение без артефактов, то стоит включить вертикальную синхронизацию. Единственным недостатком этого решения будет резкое падение производительности в особо сложных сценах, когда скорость рендеринга становится ниже частоты развертки монитора. С этим можно бороться только к том случае, если конкретное приложение поддерживается тройную буферизацию, в противном случае придется либо отключить VSync, либо смириться с временно скромной производительностью как с неизбежным фактом.


Посмотрим на примере "Центра управления" для видеокарт ATI (Catalyst Control Center), как включить или отключить вертикальную синхронизацию и тройную буферизацию. Напомним, что Catalyst Control Center работает только при наличии установленной в системе среды.NET Framework 1.1, которую можно бесплатно скачать с сайта Misrosoft. Этой утилитой пользоваться необязательно - все видеокарты ATI могут работать и с традиционной "Панелью управления" (Control Panel).


http://img.terralab.ru/pubimages/98286.jpg " width=377 border=0>


Чтобы получить доступ к настройкам VSync, необходимо в "дереве" слева выбрать пункт 3D и подпункт All Settings - раздел Wait For Vertical Refresh. По умолчанию установлены следующие настройки: вертикальная синхронизация отключена, но ее может задействовать запущенное приложение. Это самая разумная настройка, и в подавляющем большинстве случаев ее изменять не стоит. Если перевести рычажок в крайнее левое положение, то VSync будет принудительно отключена, в крайнее правое - принудительно включена. Крайнее левое положение обеспечит максимально возможную производительность, а крайнее правое - наивысшее качество. Здесь же можно включить вертикальную синхронизацию, но если приложение ее не требует, то она использоваться не будет.


http://img.terralab.ru/pubimages/98285.jpg " width=377 border=0>


Включить тройную буферизацию можно, зайдя в пункт 3D и подпункт API Specific. Здесь сразу становится очевидным, почему эту возможность поддерживают далеко не все игры: тройная буферизация возможна лишь для приложений, работающих с программным интерфейсом (API) OpenGL. Соответствующая строчка предусмотрена именно в настройках для этого API - второй пункт снизу. По умолчанию тройная буферизация отключена.


Наконец, еще раз подчеркнем, что все вышеизложенное касается и ЭЛТ-, и ЖК-мониторов. Несмотря на принципиальные отличия в принципах вывода изображения, для видеокарты (то есть, ее драйвера, операционной системы и конкретного приложения) это однотипные устройства, на которые отправляются сгенерированные кадры с определенной частотой. Впрочем, владельцам жидкокристаллических дисплеев повезло больше: для этих мониторов типичная частота развертки - всего 60 Гц, а при наличии мощной видеокарты скорость рендеринга будет падать ниже 60 fps в редких случаях.


Надеемся, что эта небольшая статья помогла вам получить ответы на вопросы, которые с завидной регулярностью появляются в форумах по видеокартам. Как видите, все довольно просто, но и неоднозначно...

Что же такое вертикальная синхронизация в играх? Эта функция отвечает за правильное отображение игр на стандартных LCD мониторах с частотой 60 Гц. Когда она включена, частота кадров ограничена до 60 Гц, а на экране не отображаются никакие прерывания. Ее отключение приведет к увеличению частоты кадров, но в то же время возникнет эффект разрыва экрана (screen tearing).

Вертикальная синхронизация является довольно спорной темой в играх. С одной стороны для визуально комфортного игрового процесса, кажется, очень необходимой, при условии, что у вас стандартный LCD монитор.

Благодаря ей во время игры не возникают никакие погрешности на экране, картинка стабильная и не имеет разрывов. Недостатком является то, что частота кадров ограничена на пределе 60 Гц, поэтому более требовательные игроки могут ощутить так называемый input lag, то есть легкую задержку при перемещении в игре с помощью мыши (можно приравнять к искусственному сглаживанию движения мыши).

Отключение вертикальной синхронизации также имеет свои плюсы и минусы. В первую очередь предоставляется неограниченная частота кадров FPS и тем самым полностью убираем упомянутый input lag. Это удобно в играх типа Counter-Strike, где важна реакция и точность. Передвижение и прицеливание очень четкие, динамические, каждое движение мыши происходит с высокой точностью. В некоторых случаях сможем получить большую частоту FPS, так как V-Sync в зависимости от видеокарты может немного уменьшить производительность оборудования (разница порядка 3-5 FPS). К сожалению, недостатком является то, что без вертикальной синхронизации получаем эффект разрыва экрана. При поворотах или смене движения в игре мы замечаем, что изображение разрывается на две или три горизонтальные части.

Включить или отключить V-Sync?

Нужна ли вертикальная синхронизация? Все зависит от наших индивидуальных предпочтений и того, что мы хотим получить. В многопользовательских играх в жанре Шутер от первого лица рекомендуется отключать вертикальную синхронизацию для увеличения точности прицела. Эффект разрыва экрана, как правило, не такой ощутимый, и когда привыкнем, то не будем даже его замечать.

В свою очередь в сюжетных играх можно спокойно включить V-Sync. Здесь высокая точность не так важна, первую скрипку играет обстановка, визуальный комфорт, так что следует сделать ставку на хорошее качество.

Вертикальную синхронизацию обычно можно включить или отключить в настройках графики игры. Но если там не найдем такой функции, то можно ее принудительно вручную выключить в настройках видеокарты – как для всех, так только и для выбранных приложений.

Синхронизация по вертикали на видеокартах NVIDIA

В видеокартах GeForce функция находится на Панели управления Nvidia. Нажмите правой кнопкой мыши на рабочем столе Windows 10, а затем выберите «Панель управления Nvidia».

На боковой панели выберите вкладку «Управления параметрами 3D» в разделе «Параметры 3D». Справа отобразятся доступные настройки.

Настройки разделены на две вкладки – глобальные и программные. На первой вкладке можно задать параметры для всех игр и, например, включить ли отключить вертикальную синхронизацию в каждой. Тогда как на второй вкладке можно задать те же параметры, но индивидуально для каждой игры отдельно.

Выбираем вкладку глобальную или программную, а затем ищем в списке параметр «Вертикальная синхронизация». Рядом расположено выпадающее поле – выбираем принудительное выключение или включение вертикальной синхронизации.

V-Sync на графике AMD

В случае с видеокартами AMD выглядит совершенно так же, как и в Nvidia. Кликните правой кнопкой мыши на рабочем столе, а затем перейдите в Панель Panel Catalyst Control Center.

Затем раскрываем слева вкладку «Игры» и выбираем «Настройки 3D-приложений». Справа отобразится список доступных вариантов, которые можно принудительно включить с позиции настроек видеокарты AMD Radeon. Когда находимся на вкладке «Системные параметры», то выбираем для всех.

Если нужно установить параметры индивидуально для каждой игры в отдельности, то следует нажать на кнопку «Добавить» и указать EXE файл. Она будет добавлена в список в виде новой закладки и при переходе на нее можно задать параметры только для этой игры.

Когда выбрали вкладку с добавленным приложением или системными параметрами (общими), то найдите в списке опцию «Жди на вертикальное обновление». Появится поле для выбора, где сможем принудительно включить или отключить эту опцию.

V-Sync на интегрированной видеокарте Intel HD Graphics

Если используем интегрированный чип Intel HD Graphics, также доступна панель управления. Она должна быть доступна при нажатии правой кнопкой мыши на рабочем столе или через комбинацию клавиш Ctrl + Alt + F12.

На панели Intel переходим на вкладку Режим настройки – Панель управления — Трехмерная графика, а затем в пользовательские настройки.

Здесь находим поле с синхронизацией по вертикали Vertical Sync. Можно включить ее принудительно, установив значение на «Включено» или установить на «Настройки приложения». К сожалению, в опциях карты Intel HD нет функции принудительного отключения – только можно включить V-Sync. Так как отключить вертикальную синхронизацию в видеокарте не представляется возможным, то сделать это можно только в настройках самой игры.