- Решение проблемы тиринга.
- Решение проблемы тиринга в linux
- Для видеокарт Nvidia
- Для видеокарт AMD
- Добавить комментарий Отменить ответ
- Еще раз о тиринге
- Решено
- compizomania
- Страницы
- 18 марта 2017
- Как побороть тиринг при использовании проприетарного драйвера nvidia в Linux
- Как убрать тиринг линукс
- Решаем проблему тиринга в Linux. (Nvidia)
- Суть проблемы
- Установка проприетарных драйверов
Решение проблемы тиринга.
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).
Кто-то даже шутит, что эти два бага разработчики нежно переносят из версию в версию, чтобы жизнь пользователей не казалась мёдом.
В данной статье речь пойдёт о таком графическом артефакте как тиринг(разрыв). Тиринг – это разрывы экрана, которые явно видны на быстрых сменах изображения, например при просмотре видео или игре.
Для видеокарт 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 до уже известного значения! Что тут может быть сложного?!
Несколько раз я встречал упоминания, что дескать не получается автоматически определить частоту обновления монитора. Ну так дайте мне вручную её задать, я её знаю, в конце конце концов мы в никсах или в оффтопике?
Итого известна частота обновления монитора, в моём случае это 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»:
Если использовали вариант — 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 авг) драйвер, устанавливаем его и перезагружаемся.
Источник