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

Обновлено: 06.07.2024

fbset использует собственную базу данных в режиме видео, расположенную в /etc/fb.modes. В этой базе данных можно определить неограниченное количество режимов видео.

ОПЦИИ

Если опция не указана, fbset отобразит текущие настройки буфера кадра.

отображать информацию об использовании

немедленно измените режим видео. Если через -fb не указано устройство кадрового буфера, эта опция активирована по умолчанию

отобразить настройки режима видео. Это значение по умолчанию, если не указана дополнительная опция или только устройство кадрового буфера через -fb

отобразить всю доступную информацию буфера кадра

показать информацию о том, что в настоящее время делает fbset

отображать информацию о версии fbset

отображать информацию о времени, как это требуется XFree86

Узлы кадрового буфера:

-FB

устройство предоставляет узел устройства кадрового буфера. Если устройство через -fb не указано, используется /dev/fb0

База данных в режиме видео:

-db файл >

установить альтернативный файл базы данных в режиме видео (по умолчанию это /etc/fb.modes ).

-xres значение >

установить видимое горизонтальное разрешение (в пикселях)

-yres значение >

установить видимое вертикальное разрешение (в пикселях)

-vxres значение >

установить виртуальное горизонтальное разрешение (в пикселях)

-vyres значение >

установить виртуальное вертикальное разрешение (в пикселях)

-depth значение >

установить глубину отображения (в битах на пиксель)

установить все геометрические параметры одновременно в следующем порядке: «em> xres > , например -g 640 400 640 400 4

-match

привести физическое разрешение в соответствие с виртуальным разрешением

-pixclock значение >

установить длину одного пикселя (в пикосекундах). Обратите внимание, что устройство кадрового буфера может поддерживать только некоторые длины пикселей

-Выберите значение >

установить левое поле (в пикселях)

-Верно значение >

установить правое поле (в пикселях)

-Верхний значение >

установить верхнее поле (в пиксельных линиях)

низш значение >

установить нижнее поле (в пиксельных линиях)

-hslen значение >

установить длину горизонтальной синхронизации (в пикселях)

-vslen значение >

установить длину вертикальной синхронизации (в пиксельных линиях)

установить все параметры синхронизации одновременно в следующем порядке: «em> pixclock > , например -g 35242 64 96 35 12 112 2

-Hsync низкая

установить горизонтальную полярность синхронизации

-Vsync высокий

установить вертикальную полярность синхронизации

-csync низкая

установить композитную синхронизацию полярности

-extsync ложь

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

-bcast True

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

-laced True

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

-double ложь

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

-Move вправо

переместить видимую часть дисплея в указанном направлении

-ступенно значение >

установить размер шага для позиционирования дисплея (в пикселях или линиях пикселей), если -step не задан, дисплей будет перемещен на 8 пикселей по горизонтали или 2 строки по вертикали

ПРИМЕР

Чтобы установить используемый видео режим для X , вставьте в rc.local следующее:

fbset -FB /DEV/fb0 VGA

и сообщите используемому устройству буфера кадров X :

Экспорт FrameBuffer = /DEV/fb0

Используйте команду man (% man ), чтобы увидеть, как команда используется на вашем конкретном компьютере.

nVidia. Вертикальная синхронизация в Linux

Если вы используете современную видеокарту nVidia с проприетарными драйверами в Linux, то наверняка сталкивались с так называемым «разрывом картинки».

Вертикальная синхронизация (V-Sync) синхронизирует частоту кадров монитора с кадрами в секунду, генерируемыми вашей видеокартой. Другими словами, если ваш монитор не в состоянии воспроизвести и половину FPS, генерируемых видеокартой, то вы не увидите разницы между 60 FPS и 160 FPS. Учитывая тот факт, что видеокарта не генерирует равное число кадров постоянно и FPS может резко изменяться в зависимости от множества факторов, визуально это выражается в разрывах изображения на экране. V-Sync занижает FPS до возможностей вашего монитора, что в итоге снимает излишнюю нагрузку с видеокарты и визуально картинка на экране выглядит более плавной, без разрывов.

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

Современные композитные окружения рабочего стола, такие как KDE или Gnome (при соответствующих настройках и наличии проприетарного драйвера) используют аппаратное ускорения для сглаживания картинки, но не всегда это работает. Дело в том, что на слабом железе V-Sync незначительно, но иногда заметно снижает производительность в некоторых приложениях, использующих OpenGL. Судя по всему в последнее время в nVidia проделали работу по исправлению этой неприятности, однако разработчики Linux дистрибутивов не спешат давать пользователям возможность включить V-Sync в один клик, без тыканья множества галочек и оттачивания навыков использования поисковых систем.

Для карт nVidia есть две опции: «ForceCompositionPipeline = On» и «ForceFullCompositionPipeline = On» для принудительно включения V-Sync для всей системы в целом. По их виду видно, что первая более «щадящая», а вторая более «бескомпромиссная». Вторая не будет работать без первой и какую конфигурацию включить — дело индивидуальное. Мне с моим рабочим столом KDE и картой GTX 1060 только «ForceFullCompositionPipeline» помогло полностью избавиться от «разрывов» в видео.

В терминале введите следующую команду:

Если не помогло, то следом используйте туже команду, но с параметром «ForceFullCompositionPipeline».

Экран погаснет на пару секунд и включится снова. Если не включится, то не стоит паниковать, так как изменения действительны только на протяжении текущей сессии. После перезагрузки компьютера всё вернётся к состоянию «как было».

Если результат вас устраивает, то вы можете захотеть включить данную опцию перманентно. Для этого нужно отредактировать файл /etc/X11/xorg.conf. Для этого воспользуйтесь любым удобным для вас текстовым редактором и с правами root внесите следующие изменения: В секцию «Screen» (Section "Screen") перед строкой «SubSection "Display"» добавьте строку

Уберите из неё запятую и «ForceFullCompositionPipeline=On» если вас устраивает вариант с «ForceCompositionPipeline=On». Должно получиться нечто подобное:

Иногда вам нужно проверить, действительно ли вы работаете на Linux 3D-ускорении (кроме вывода glxinfo ). Это можно быстро выполнить с помощью инструмента glxgears . Однако FPS часто ограничиваются показателями вертикальной частоты обновления (то есть 60 кадров в секунду). Таким образом, инструмент становится более или менее бесполезным, поскольку даже программный рендеринг может легко производить 60FPS glxgears на современных процессорах.

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

ОТВЕТЫ

Ответ 1

Переменная среды vblank_mode делает трюк. Затем вы должны получить несколько сотен FPS на современном оборудовании. И теперь вы можете сравнивать результаты с другими.

Ответ 2

Если вы используете драйверы с закрытым исходным кодом NVIDIA, вы можете изменить режим вертикальной синхронизации на лету, используя переменную среды __GL_SYNC_TO_VBLANK :

Это работает для меня на Ubuntu 14.04 с использованием драйверов NVIDIA 346.46.

Ответ 3

Для графики Intel и графических драйверов с открытым исходным кодом AMD/ATI

Найдите раздел "Устройство" /etc/X11/xorg.conf , который содержит одну из следующих директив:

  • Driver "intel"
  • Driver "radeon"
  • Driver "fglrx"

И добавьте следующую строку в этот раздел:

И запустите приложение с переменной окружения vblank_mode , установленной на 0 :

Для графики Nvidia с проприетарным драйвером Nvidia

Такое же изменение можно сделать в графическом интерфейсе nvidia-settings , сняв опцию в X Screen 0 / OpenGL Settings / Sync to VBlank . Или, если вы хотите просто протестировать параметр без изменения вашего файла

/.nvidia-settings-rc , вы можете сделать что-то вроде:

Ответ 4

Отключение флажка Sync to VBlank в настройках nvidia (вкладка "Настройки OpenGL" ) делает трюк для меня.

Ответ 5

Я нашел решение, которое работает на карте Intel и на карте nvidia с помощью Bumblebee.

Ответ 6

Собрав все остальные ответы вместе, приведем командную строку, которая будет работать:

Это дает преимущества работы с драйверами Mesa и NVidia и не требует никаких изменений в файлах конфигурации.

Ответ 7

Для драйверов Intel существует также этот метод

Отключить вертикальную синхронизацию (VSYNC)

Интеллектуальный драйвер использует Triple Buffering для вертикальной синхронизации, что обеспечивает полную производительность и позволяет избежать разрыва. Чтобы отключить вертикальную синхронизацию (например, для бенчмаркинга), используйте этот .drirc в своем домашнем каталоге:

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

Что такое VSync

Что такое вертикальная синхронизация

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

Разрыв кадра в игре

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

Как VSync работает в играх

Зачем же влиять на графическую карту и монитор извне:

  1. Неслаженная работа двух элементов имеет вполне наглядное последствие: как только картинка резко меняется, её часть «уезжает» в сторону, словно отрезанная ножом. Дефект пропадает через доли секунды, но всё равно может быть критичен, если по условиям игры нужна быстрая реакция.
  2. Без VSync графический адаптер работает на предельной мощности, хотя от него это не требуется. В этом случае температура ПК возрастает, кулер тоже старается крутиться быстрее, ресурсы расходуются впустую. Ожидать чего-то хорошего в этом случае не приходится: в подобном режиме самые важные компоненты компьютера быстро сломаются и потребуют замены.

Включенная и выключенная VSync

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

Как включить или отключить вертикальную синхронизацию в любой игре

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

Вкладка «Игры» в настройках видеокарты AMD
Блок «Общие настройки» в настройках видеокарты AMD
Пункт «Ждать вертикального обновления»
Включение вертикальной синхронизации в настройках видеокарты AMD

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

Также владельцев бюджетных ноутбуков мучает вопрос, можно ли включить VSync на интегрированной видеокарте Intel HD Graphics Vega, которая, по сути, вообще не предназначена для игр. Но настройки Vertical sync есть даже здесь. Чтобы отрегулировать их, сделайте следующее:

Особенность данного графического адаптера заключается в том, что пункт Vertical synchronization здесь включён всегда и не отключается. А его деятельность регулируется либо системой, либо пользователем.

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

Теперь остаётся разобраться в том, стоит ли включать VSync или можно обойтись без него. Давайте рассмотрим соответствующие случаи.

Когда стоит включать вертикальную синхронизацию:

  1. Игра полностью или частично загружена и установлена в компьютер (можно играть оффлайн).
  2. Играет один человек.
  3. Артефакты превратились в настоящую проблему. и нагревается.

Когда не стоит включать:

  1. В многопользовательских играх.
  2. В онлайн-играх.

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

Если вы любите играть, расскажите в комментариях, нравится ли вам VSync и в каком режиме вы её используете: «Быстром», «Адаптивном», с настройками самого приложения?

Читайте также: