Тиринг что это
Перейти к содержимому

Тиринг что это

  • автор:

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

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.

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

Option "metamodes" "nvidia-auto-select +0+0 < ForceCompositionPipeline = On >"

в секцию Screen в файле /etc/X11/xorg.conf, но уже давно файл отсутствует как класс и настройки формируются динамически. Сейчас проще добавить команду в Автозагрузку системы.

Дата последней правки: 2016-03-16 10:58:56

Тиринг что это

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

В нашем случае решение подойдет только для видеокарт с архитектурой Maxwell и Pascal, это примерно серия видеокарт GTX начиная с 900 серии выше.

1

В избранное
В избранном
Поделиться
Этот предмет добавлен в избранное.

АААААУУУУФ
Не в сети
15 мар. 2019 в 1:51
4 апр. 2021 в 8:34

1,240 уникальных посетителей
3 добавили в избранное

Оглавление руководства

Tearing или как убрать «разрывы» изображения в играх и приложениях.

Комментарии
Tearing или как убрать «разрывы» изображения в играх и приложениях.

Для тех у кого наблюдаются «разрывы» изображения во время игрового процесса, эффект Tearing. Примеры «разрывов» картинки:

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

В нашем случае решение подойдет только для видеокарт с архитектурой Maxwell и Pascal, это примерно серия видеокарт GTX начиная с 900 серии выше.

  • Панель управления Nvidia
  • Пункт — Управление параметрами 3D
  • Выбираем — Глобальные параметры
  • Ищем строку — Вертикальный синхроимпульс
  • Выбираем значение — Быстро

Внимание ! Это настройка повлияет на все игры и приложения которые установлены на вашем ПК !

Для настройки определенного приложения или же игры нужно проделать следующие шаги:

  • Панель управления Nvidia
  • Пункт — Управление параметрами 3D
  • Выбираем — Параметры настройки
  • Выбираем — Приложение из списка (Выберите программу для настройки)
  • Ищем строку — Вертикальный синхроимпульс
  • Выбираем значение — Быстро

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

• Быстро: снимает ограничение частоты рендеринга кадров ГП, как при отключенной синхронизации, но не вызывает разрывов изображения, так как кадры, превышающие частоту обновления дисплея, не отображаются. Обеспечивает примерно такие же низкие задержки, как и отключение синхронизации, и при этом ликвидирует разрывы.

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

Для обладателей видеокарт AMD нужно включить функцию AMD Enhanced Sync.

Перейдите в расположение Настройки > Видеокарта. Переключите ползунок Radeon Enhanced Sync в положение Включено.

В разделе Игры выбрав нужное приложение мы попадаем в его персональный профиль. Снизу аналогично включите Radeon Enhanced Sync (уменьшение разрывов кадров и задержки). Если же нужной игры нет, нажмите Сканировать или Добавить игру вручную.

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

Тиринг что это

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




ВНИМАНИЕ : Данная инструкция не тестировалась с гибридной графикой, будьте осторожны!

Тиринг (англ. Tearing) — это разрыв картинки, который обычно характеризуется горизонтальными полосами. Происходит это из-за выключенной или неправильно работающей вертикальной синхронизации. Часто проявляется в динамических сценах игр и при просмотре видео или в рабочем окружении при прокрутке и манипуляции с окнами.
Вы можете проверить, существует ли у вас тиринг, глянув это видео. Если наблюдается разрыв картинки значит эта инструкция для вас.

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

lspci -k| grep -EA2 'VGA|3D'

Так же не забываем, что вертикальную синхронизацию можно задействовать в самом рабочем окружении KDE, открыв Параметры системы — Экран — Обеспечение эффектов и перейдя к пункту Предотвращение разрывов (Vsync). Я надеюсь, что вы сами подберете для себя производительный и лучший вариант.

INTEL
Видеокарты Intel по-умолчанию используют ускорение SNA и DRI2. Для решения проблем с тирингом рекомендуется использовать опцию TearFree, либо включить DRI3. Нельзя TearFree и DRI3 использовать одновременно, ибо у вас начнут виснуть иксы или рабочее окружение. Напомню, что TearFree немного снижает производительность графики.
1 вариант
/etc/X11/xorg.conf.d/20-intel.conf

Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "sna" Option "TearFree" "true" EndSection

2 вариант
/etc/X11/xorg.conf.d/20-intel.conf

Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "sna" Option "DRI" "3" EndSection

3 вариант
/etc/X11/xorg.conf.d/20-intel.conf

Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" Option "DRI" "3" EndSection


AMD
Обладателям этих видеокарт рекомендуется использовать открытый драйвер radeon или amdgpu (для карт семейства Volcanic Islands и Sea Islands). Так же как и для Intel тут доступны TearFree и DRI3, которые нужно задействовать.
radeon — свободный драйвер
/etc/X11/xorg.conf.d/20-radeon.conf

Section "Device" Identifier "Radeon" Driver "radeon" Option "DRI" "3" Option "TearFree" "on" EndSection

amdgpu — свободный драйвер для новых моделей видеокарт
/etc/X11/xorg.conf.d/20-amdgpu.conf

Section "Device" Identifier "AMD" Driver "amdgpu" EndSection

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

NVIDIA
Для карт Nvidia лучше всего использовать проприетарный драйвер. В настройках драйвера установите галочку на Sync to VBlank

Так же рекомендуется включить в Параметрах системы — Экран опцию Повторное использование в поле Предотвращение разрывов (VSync).
И добавить опции профиля системы:

sudo sh -c 'echo "export __GL_YIELD=\042USLEEP\042" >> /etc/profile' sudo sh -c 'echo "export KWIN_TRIPLE_BUFFER=1" >> /etc/profile'

Что вообще такое этот тиринг?

Так много про него говорят, а я вот ни разу его и не видел, наверное. Как он вообще выглядит и что это такое? Где можно пример глянуть?

Meyer ★★★★★
18.02.17 14:15:41 MSK

В гугле забанили?

RazrFalcon ★★★★★
( 18.02.17 14:16:09 MSK )

в гугле есть тесты на ютубе.

n_play ☆
( 18.02.17 14:17:12 MSK )

это когда что то тырят?
да на каждом углу можно увидеть.

Deleted
( 18.02.17 14:22:26 MSK )

если полоска разделяется на две части, поздравляю у тебя тиринг.

invy ★★★★★
( 18.02.17 14:36:45 MSK )

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

mbivanyuk ★★★★★
( 18.02.17 14:40:52 MSK )

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

i-rinat ★★★★★
( 18.02.17 14:41:07 MSK )
Ответ на: комментарий от i-rinat 18.02.17 14:41:07 MSK

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

Не, такого ни разу не видел) Хотя стоп. Кажись было в FreeBSD на VMware.

Meyer ★★★★★
( 18.02.17 14:52:08 MSK ) автор топика

Sadler ★★★
( 18.02.17 15:04:20 MSK )

В ответах настоящая перепись «ньюфагов», которые уже не застали X11 без композитинга, предоставляемого KDE4\5 или Gnome3

DawnCaster ★★
( 18.02.17 15:05:59 MSK )
Ответ на: комментарий от mbivanyuk 18.02.17 14:40:52 MSK

ты либо счастливчик из миллионов, либо нагло рассказываешь пчёлам что ты не Винни-Пух! 🙂

Deleted
( 18.02.17 17:14:44 MSK )

Говорят, тиринг только на nvidia проявляется. Я вот тоже его ни разу не видел.

theNamelessOne ★★★★★
( 18.02.17 18:18:27 MSK )
Ответ на: комментарий от invy 18.02.17 14:36:45 MSK

и что с этим делать?

Grantrol ★
( 18.02.17 18:25:44 MSK )
Ответ на: комментарий от theNamelessOne 18.02.17 18:18:27 MSK

Выключи вертикальную синхронизацию и отключи композитинг и увидишь.

peregrine ★★★★★
( 18.02.17 18:59:28 MSK )
Ответ на: комментарий от invy 18.02.17 14:36:45 MSK

О, у меня точно есть! Но я и без теста замечал, что все ХД-видео проигрывается с такой полоской внизу кадра. Независимо от источника.

P.S. а это лечится?

Deleted
( 18.02.17 19:32:41 MSK )
Последнее исправление: Deleted 18.02.17 19:34:07 MSK (всего исправлений: 1)

Ответ на: комментарий от Deleted 18.02.17 19:32:41 MSK

Как — зависит от оборудования и DE.
В nvidia блобе лечится добавлением в конфигурацию иксов:

 Option "ForceFullCompositionPipeline" "True" # for drivers < 375.10 # Option "metamodes" "nvidia-auto-select +0+0 < ForceFullCompositionPipeline = On >" 

invy ★★★★★
( 18.02.17 19:43:15 MSK )
Ответ на: комментарий от Grantrol 18.02.17 18:25:44 MSK
invy ★★★★★
( 18.02.17 19:44:03 MSK )
Ответ на: комментарий от Sadler 18.02.17 15:04:20 MSK
invy ★★★★★
( 18.02.17 19:51:14 MSK )
Ответ на: комментарий от invy 18.02.17 19:51:14 MSK

Лично меня пару раз спасало, когда игрушка не умела сама ограничивать FPS, в результате сжирала все ресурсы в попытке отрисовать что-нибудь вроде 500 FPS.

Sadler ★★★
( 18.02.17 19:53:19 MSK )
Ответ на: комментарий от DawnCaster 18.02.17 15:05:59 MSK

я застал, но тиринга не видел

next_time ★★★★★
( 18.02.17 19:58:56 MSK )
Ответ на: комментарий от Sadler 18.02.17 19:53:19 MSK

Ну и пусть себе рисует. В менюшках порой бывает и по полторы тыщи фпс и ничего.

Akamanah ★★★★★
( 18.02.17 20:00:33 MSK )
Ответ на: комментарий от peregrine 18.02.17 18:59:28 MSK

theNamelessOne ★★★★★
( 18.02.17 20:07:41 MSK )
Ответ на: комментарий от invy 18.02.17 19:43:15 MSK

Ха-ха, у меня вылечилось отключением эффектов в XFCE.

Deleted
( 18.02.17 20:11:18 MSK )
Ответ на: комментарий от invy 18.02.17 19:44:03 MSK

Grantrol ★
( 18.02.17 20:12:00 MSK )

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

советователям всинка лучи поноса

n_play ☆
( 18.02.17 21:26:52 MSK )
Ответ на: комментарий от Deleted 18.02.17 17:14:44 MSK

ты либо счастливчик из миллионов, либо нагло рассказываешь пчёлам что ты не Винни-Пух! 🙂

ХЗ, я предполагаю что этом просто должно быть какое-то разумное объяснение.

mbivanyuk ★★★★★
( 19.02.17 03:24:13 MSK )

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

Napilnik ★★★★★
( 19.02.17 03:44:38 MSK )

Купи видеокарту Nvidia, увидишь.

Пользовался в последние годы 8600, 9600, 640, 750, 680, K1000M. Все использовал с блобом. XFCE, Gnome 3. Тиринг был на каждой. Ни один совет не помог.

Купил бы радеон, да я играю периодически.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *