Как убрать тиринг линукс

Решение проблемы тиринга.

Linux системы прекрасны, но их пишут люди, которые тоже могут ошибаться и вносить баги. Есть два трудноуловимых бага, каждый из которых я огрёб в своё время, 1) баг 12309 и 2) тиринг (tearing). Кто-то даже шутит, что эти два бага разработчики нежно переносят из версию в версию, чтобы жизнь пользователей не казалась мёдом.

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


Почему этот баг до сих пор никто не отловил? В статьях часто давал вам материалы от профи по графической части:
Французский программист Julien Danjou, разработчик оконного менеджера Awesome, и его мысли вслух о протоколе X.

Jasper St. Pierre, разработчик GNOME Shell в статье Графический стек Linux.
Что кратко можно уяснить из них? Современный графический стек Linux на базе старого древнего Xorg (X11) очень сложен и состоит из массы компонент.

Наверху этого стека находятся наши с вами оболочки рабочего стола (DE). Часть оболочек типа Gnome, KDE используют композитинг (composite), а часть (типа LXDE или MATE) — нет и не используют аппаратное ускорение. Если вы схватите баг тиринг, то будете шаманить настройками в надежде избавиться от противных разрывов. Главный помощник для вас будет Вертикальная Синхронизация (V-sync), но она может и не помочь.

В самом внизу стека находятся драйвера и если вы используете Nvidia продукцию и проприетарные драйвера у вас относительно новые, то вам доступны опции ForceCompositionPipeline и ForceFullCompositionPipeline.

Прежде чем начать, стоит вас предупредить что вышеперечисленные опции могут привести к падению производительности OpenGL приложений и вам стоит промониторить сей момент.

Вначале в Терминале попробуйте команду nvidia-settings —assign CurrentMetaMode=»nvidia-auto-select +0+0 < ForceCompositionPipeline = On >» , если у вас единственный монитор. Если у вас многомониторная конфигурация, то +0+0 вам придётся изменить.

Если у вас чёрный экран или начались проблемы, то сделайте рестарт. Вам помогут магические кнопки Alt + SysRq + R,E,I,S,U,B.

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

Источник

Решение проблемы тиринга в linux

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

2) тиринг (tearing).

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

В данной статье речь пойдёт о таком графическом артефакте как тиринг(разрыв). Тиринг – это разрывы экрана, которые явно видны на быстрых сменах изображения, например при просмотре видео или игре.

Читайте также:  Windows server 2012 диспетчер устройств

Для видеокарт Nvidia

Итак недавно накткнулся в интернете на решение данной проблемы для видиокарт Nvidia. Если у вас один монитор(подключён):

Для мультимониторной конфигурации вам придётся изменить +0+0 на другое.
Если у вас чёрный экран или начались проблемы, то сделайте рестарт.

Если всё в порядке, то необходимо закрепить настройки в конфиге(но уже давно файл отсутствует как класс и настройки формируются динамически)

добавить строку

Я рекомендую данную строку прописать в автозагрузку.

Для видеокарт AMD

Открываем Catalyst Control Center, переходим к опциям Дисплея и выбираем “Tear Free Desktop mode”.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник

Еще раз о тиринге

Так как все же избавиться от тиринга в Линуксе? Раньше работал в Windows и там можно было избавиться от тиринга какими-то настройками реестра (сейчас уже не помню, как).

На линуксе от тиринга при перемещении окошек можно избавиться только если использовать OpenGL композитный менеджер. Но в этом случае возникают страшные тормоза при ресайзе окошек. Я пробовал compiz и dcompmanager.

В настройках ATI Catalyst есть опция, которая убирает тиринг. Но у меня nvidia.

Есть способ убрать тиринг при использовании nvidia?

cast megabaks

Решено

…На линуксе от тиринга при перемещении окошек можно избавиться только если использовать OpenGL композитный менеджер…

Всё в точности до наоборот — пишем в /etc/X11/xorg.conf

Option «Composite» «off»

глобально, надёжно, сухо. Исчезают абсолютна все проблемы с тирингом, поддормаживанием при скроллинге в Firefox (включая при работающем KTorrent), дёрганья в Google Earth, аномалии при проигрывании флэш и XBMC, и многие другие странности. Можно сказать, что проблем практически нет вообще, и цена вопроса — всего лишь отказаться от идиотских перделок.

Есть способ убрать тиринг при использовании nvidia?

щас невидия фанаты набигут и расскажут, что тиринга на нвидии не бывает, это все происки врагов.

Автор — няша, потому что поднял животрепещущий вопрос.

Могу с высокой уверенностью сказать, что проклятый тиринг — это самая серьёзная проблема для меня, которая не даёт полноценно пользоваться Линуксом.

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

Да и вообще непонятно, а в чём заключается проблема? Я понимаю, когда речь заходит о повышении FPS, тут действительно, нужно проводить оптимизации, реализовывать сложные алгоритмы и т.д. Но, блин, итти его за ногу, речь ведь о том, чтобы понизить FPS до уже известного значения! Что тут может быть сложного?!

Читайте также:  Runtime pack для windows 10 что это

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

Итого известна частота обновления монитора, в моём случае это 60 герц. Нужно выводить картинку с видеокарты 60 раз, а видеокарта шпарит на все 200-300. Ну так реализуйте алгоритм:
time_delta = 1 / 60 // 0.0167
if готов_для_отрисовки(очередной_кадр) then
__if предыдущий кадр был отрисован менее time_delta секунд назад, then
____дропаем очередной_кадр
__else
____рисуем очередной_кадр

Что в этом сложного?! Задача даже не для первокурсника — для школьника, изучающего программирование впервые в жизни. И уже столько лет никто не может реализовать это? Я в недоумении.

Что в этом сложного?! Задача даже не для первокурсника

В настройках nvidia есть пункт, включающий синхронизацию в OpenGL приложениях. При этом, если на экране есть хоть одно 3Д приложение (например, glxgears), то тиринга нет при перемещении любых окон. Как только окошко glxgears закрываешь — тиринг появляется снова.

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

Задача даже не для первокурсника — для школьника, изучающего программирование впервые в жизни

Так будь мужиком, впили патч.

относительно малое количество обсуждений в интернетах

Может быть это потому, что тиринг присутствует лишь на малой части программно-аппаратных конфигураций?

Попробовал, ни на что не влияет, тиринг меньше не стал.

жуткие тормоза при ресайзе любого окна

Источник

compizomania

Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ

Страницы

18 марта 2017

Как побороть тиринг при использовании проприетарного драйвера nvidia в Linux

Чтобы убедится в том, что данное решение работает в вашем случае, скопируйте и выполните следующую команду в терминале:

nvidia-settings —assign CurrentMetaMode=»nvidia-auto-select +0+0 < ForceCompositionPipeline = On >«

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

nvidia-settings —assign CurrentMetaMode=»nvidia-auto-select +0+0 < ForceFullCompositionPipeline = On >«

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

Теперь закрепим результат.

Без дальнейших действий весь эффект пропадет после перезагрузки. А также если появились какие-то лаги, перезагрузитесь, значит данное решение вам не подходит.

Итак. Во-первых, необходимо убедиться что у нас есть файл xorg.conf, который находится по пути /etc/X11. Откроем для просмотра данную директорию командой в терминале:

Если он есть, как показано на скриншоте ниже, продолжаем.

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

Тем у кого все в порядке необходимо сделать резервную копию файла xorg.conf следующей командой:

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Теперь откройте файл в любимом текстовом редакторе с привилегиями суперпользователя. В моем случае, это редактор nano.

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

sudo nano /etc/X11/xorg.conf

Вы должны увидеть примерно следующее, в разделе Section «Screen»:

Читайте также:  Windows server 2012 sstp vpn server

Если использовали вариант — ForeFullCompositionPipeline, строка Options «metamodes» , будет выглядеть как на изображении выше.

Если ее нет, добавьте с рабочим для себя вариантом.
У некоторых из вас уже есть опция «metamodes» в вашем файле /etc/X11/xorg.conf, как в примере ниже для настройки с двойным монитором:

Option «metamodes» «VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864»

Если это так, просто измените строку так, чтобы она выглядела следующим образом:

Option «metamodes» «VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864 < ForceCompositionPipeline = On >«

И вот теперь перезагружаемся, наслаждаемся плавной картинкой.

Что делать, если у вас отсутствует файл /etc/X11/xorg.conf?

У пользователей Ubuntu и Linux Mint может не оказаться файла xorg.conf по умолчанию. Поэтому для его создания открываем nvidia-settings и переходим в раздел X Server Display Configuration, нажимаем Save to X Configuration File (создаем тем самым необходимый для нас файл xorg.conf).
Пример на скриншоте ниже.
И снимите галочку с Merge with existing file (совместить с существующим файлом).

Проверьте наличие файла xorg.conf и возвращайтесь к началу инструкции.

Всем спасибо за внимание. Надеюсь это кому-то поможет.

Источник

Как убрать тиринг линукс

Опубликовано статей: 57

Решаем проблему тиринга в Linux. (Nvidia)

Суть проблемы

Для начала что такое проблема тиринга. Дело в том что у каждого монитора есть такой показатель как частота обновления экрана (характеристика обозначающая количество возможных изменений изображения в секунду), чаще всего она равна 60 Гц, но существуют исключения в виде игровых мониторов на которых это значение может быть 144, 165 и даже 240 Гц. Тк вот видеокарта может выдавать значительно больше чем 60 кадров в секунду (fps), и соответственно выводит допустим 270 кадров в секунду на монитор 60 Гц кадры накладываются друг на друга и получается тиринг. В играх используется технология V-Sync которая искусственно понижает fps в игре до 60 чтобы частота кадров в игре и частота обновления монитора совпадали. Эта проблема встречается во многих дистрибутивах, но сейчас я разберу ее на Manjaro Arch Linux на ядре 4.12 или 4.9 и Ubuntu ядро 4.10.

Тиринг проще всего заметить во время горизонтального движения объектов(такая полоска “несостыковки кадров”, в теории она может следовать за мышкой в полноэкранном режиме), и в последних версиях линукса он чаще наблюдается на дополнительных мониторах, а на основном отсутствует.

Проверять только в полноэкранном режиме.

Установка проприетарных драйверов

Открыть Менеджер настроек Manjaro, выбрать пункт конфигурация оборудования, нажать кнопку Auto Install Proprietary Driver или поставить галочку около video-nvidia

На другом Arch дистрибутиве (Antergos, Chakra, Arch-Anywhere и другие)

Если он не установлен то устанавливаем pamac (GUI для пакмена, с ним проще если вы новичек) в терминале вводим sudo pacman -S pamac и пароль администратора. (Pamac в Manjaro дистрибутиве установлен по умолчанию и называется установка и удаление программ)

Запускаем pamac и вводим в поиске nvidia сортируем по версиям и устанавливаем соответствующий ядру системы драйвер или пакет nvidia-utils. Версию ядра можно узнать командой uname -r в терминале.

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

После выполнения данных команд в “Программы и обновления” появится последний 384.59 (2017 22 авг) драйвер, устанавливаем его и перезагружаемся.

Источник

Оцените статью