Включать ли вертикальную синхронизацию в играх. Технология Nvidia G-Sync

  • 28.06.2019

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

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

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

Хотя появление жидкокристаллических (ЖК) мониторов внесло свои коррективы в построение изображения, сам принцип остался неизменным. Скорость, с которой монитор может выводить упомянутые выше статичные картинки, называется частотой кадровой развертки. Однако понять, что такое вертикальная синхронизация, нельзя без прояснения еще одного момента.

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

Видеопроцессоры прошлых поколений не отличались беспрецедентным быстродействием, а вот мониторы, наоборот, старались сделать такими, чтобы их развертка составляла не меньше 85 герц (кадров в секунду). В результате количество картинок, передаваемых видеоадаптером в монитор, было меньше, чем мог вывести последний. Но сейчас ситуация изменилась. Частота в ЖК-мониторах редко превышает 60 Герц (исключение - устройства, поддерживающие аппаратное 3D-изображение), а видеокарты при работе со многими приложениями теперь формируют больше кадров. Вертикальная синхронизация - это возможность драйвера согласовывать между собой две кадровых частоты путем уменьшения числа картинок, выдаваемых картой на монитор. Это позволяет получить плавность при отображении динамических сюжетов. С другой стороны, вертикальная синхронизация ati (NVidia, Intel) - это своеобразные путы, не позволяющие карте работать в режиме максимальной производительности.

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

Наверняка многие любители компьютерных игр сталкивались с рекомендацией отключать в играх так называемую «вертикальную синхронизацию» или 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.

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

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

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

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

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

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

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

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

Инструкция

Для исправления этого параметра откройте меню вашей игры, найдите меню «Опции» или «Параметры», в подпункте «Видео» ищите пункт «Вертикальная » (Vertical Sync). Если меню англоязычное и опции текстовые, тогда ищите положение переключателя Disabled или «Выключено». После этого нажмите кнопку «Применить» или Apply для сохранения этого параметра. Изменения вступают в действие после перезапуска игры.

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

Если ваша видеокарта относится к семейству Geforce, нажмите правой кнопкой на рабочем столе и выберите пункт меню «Панель управления nVidia». Другой вариант - откройте панель управления через меню «Пуск», там будет иконка запуска с тем же названием. Если ни в панели управления, ни в меню рабочего стола вы не нашли нужную иконку, посмотрите возле часов в правом углу экрана, там будет зеленый значок nVidia, похожий на глаз - дважды щелкните на нем. По итогу откроется меню настроек видеокарты.

Окно панели управления драйвера состоит из двух частей, в левой части находятся категории действий, а в правой - возможные варианты и информация. Выберите в левой части нижнюю строчку «Управление параметрами 3D». В правой части окна, на закладке «Глобальные параметры», найдите в самом верху списка опцию «Вертикальный синхроимпульс». Напротив будет указана текущая настройка: «Включить», «Отключить» или «Настройки приложения». Выберите из выпадающего списка вариант «Отключить» и подтвердите свой выбор, нажав кнопку «Применить».

У владельцев видеокарт AMD Radeon настройка драйвера производится через специальное приложение Catalyst. Для его запуска нажмите правой кнопкой на рабочем столе и выберите Catalyst Control Center. Либо откройте панель управления компьютером и найдите значок с тем же названием. Третий способ - в системной области экрана возле часов, в правом нижнем углу, ищите красный круглый символ и дважды щелкайте мышью на нем. Результат всех этих действий одинаковый - откроется центр управления настройками вашей видеокарты.

Принцип тот же, что в панели управления nVidia.В левой части окна будут категории настроек, а в правой - подробные настройки и подсказки к ним. Выберите пункт «Игры» или Gaming в левой колонке, а затем подменю «Настройки 3D-приложения». В правой части появятся пункты настроек разных параметров видеокарты. Прокрутите страничку ниже и найдите надпись «Ждать вертикального обновления», а под ней ползунок переключателя с четырьмя отметками. Передвиньте этот ползунок в крайнее левое положение, ниже будет надпись «Всегда выключено». Нажмите кнопку «Применить» в правом нижнем углу окна для сохранения изменений.

Источники:

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

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

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

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

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

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

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

Инструкция

Включение вертикальной синхронизации может быть осуществлено пользователем несколькими способами. Наиболее простой метод - это вызвать контекстное меню рабочего стола кликом правой кнопки мыши на пустом пространстве стола и указать пункт "Экран". Раскройте ссылку Display Properties и перейдите на вкладку Settings в открывшемся диалоговом окне. Воспользуйтесь кнопкой Advanced и включите нужную функцию в разделе Wait for Vertical Sync.

Для программного включения вертикальной синхронизации в OpenGL, используйте код:

void set_vsync (bool enabled) // true
{
PFNWGLSWAPINTERVALEXTPROC wglSwapInterval = NULL;
wglSwapInterval = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress ("wglSwapIntervalEXT");
if (wglSwapInterval) wglSwapInterval (enabled ?1: 0);
}.

Используйте DirectX 9 для включения вертикальной синхронизации. Для этого перед запуском D3DDevice измените значение параметра
g_d3d9Parameters.SwapEffect на D3DSWAPEFFECT_COPY. После этого также присвойте параметру g_d3d9Parameters.PresentationInterval значение D3DPRESENT_INTERVAL_ONE.

Для включения вертикальной синхронизации nVidia, вызовите контекстное меню рабочего стола компьютера кликом правой кнопки мыши и укажите пункт "Панель управления nVidia". Раскройте меню "Вид" верхней сервисной панели открывшегося диалогового окна и укажите пункт "Расширенный". Разверните узел "Управление параметрами 3D" в дереве левой части окна панели управления и укажите команду "Включить" в выпадающем списке строки "Вертикальный синхроимпульс" в следующем диалоговом окне. Сохраните сделанные изменения, нажав кнопку OK, и перезагрузите систему для применения этих изменений.

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

Источники:

  • Вертикальная синхронизация: как отключить в nVidia

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

Вам понадобится

Инструкция

Настройка графического адаптера от Intel производится через Панель управления. Если у вас установлен стандартный системный драйвер, перейдите в меню «Пуск» и выберите пункт «Панель управления». Перейдите в раздел «Персонализация» - «Экран» - «Настройка разрешения» - «Дополнительно». В появившемся окне кликните по используемой видеокарте, откройте вкладку «Графические адаптеры» - «Свойства».

В новом окне выберите режим OpenGL или «Установки 3D». Настройте приведенные параметры или отключите определенные опции, чтобы повысить графическую производительность.

Если в вашем компьютере используется видеокарта от Nvidia для отключения 3D воспользуйтесь контрольной панелью драйвера. Перейдите в «Пуск» - «Панель управления» - «Оборудование и звук» - «Экран» - «Панель управления Nvidia». Вы также можете воспользоваться иконкой программы в трее Windows правой нижней части экрана.

В появившемся окне перейдите в секцию «Параметры 3D» - Регулировка настроек изображения». Для отдельных параметров воспользуйтесь пунктом «Управление параметрами 3D». Чтобы выставить опции в соответствии с используемым приложением, перейдите во вкладку «Программные настройки».

Что же такое вертикальная синхронизация в играх? Эта функция отвечает за правильное отображение игр на стандартных 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. Так как отключить вертикальную синхронизацию в видеокарте не представляется возможным, то сделать это можно только в настройках самой игры.