LINUX.ORG.RU
ФорумGames

Тест Nvidia тиринг и ForceCompositionPipeline = On

 ,


4

1

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

Я записал сравнение ForceCompositionPipeline = On и Off и почему опция On непригодна к использованию.
Почему- кадры «тиринга» никуда не исчезают, но вместо отображения тиринга я вижу на экране вот что, словами:
При включенной опции ForceCompositionPipeline = On я вижу «рывок» между двумя(возможно больше промежуток) кадрами и это очень хорошо заметно в любой даже самой плавной игре(не быстрым поворотом камеры) или банальной прокрутке браузера,но рывок это не самое страшное самое страшное это- отсутствие отклика от системы во время этого «рывка» никакие кнопки не работают как будто иксы зависают на долю секунды.
И количество таких рывков, очевидно зависят от загрузки системы(от ФПС)- если открыть одну вкладку в браузере и никаких больше окон вообще в системе то и рывков будет минимум(один в пару минут)
но если открыть пару вкладок в браузере, стим, любое окно в вайне, пару текстовых редакторов, терминал и пару файл-менеджеров, плюс запущенная игра-это все потребляет 50% CPU и 50-70% GPU
и количество «фризов» в каждом окне станет невыносимым-банально печатая текст в текст редакторе вводя «привет» вы напечатаете «приввет»(две буквы) потому что во время ввода «в» был «физ» и иксы не получили события «отжатия кнопки» и на долю секунды кнопка «в» была нажата и очевидно текстовый редактор по таймеру напечатал еще одну «в» так как в памяти «в» все еще нажата

и это весь интерфейс фризится-даже движения мышки «дергаются», хотя и показано что ФПС 60(или выше если без Vsync) и визуальный ФПС в таких условиях «ощущается» что ниже 20
к этому добавляется появление «бага рывка экрана» после альт-таба из/в любое приложение случайно начинают рывки идти с определенной очередностью и .... это неюзабельно вобщем(на видео ниже есть демонстрация,видео 13 и 8)

однако если выключить ForceCompositionPipeline = Off то система станет идеально отзывчивой,да будет тиринг при выделении(файлов в файл редакторе/раб столе к примеру) тиринг при перетаскивании окон,но при этом интерфейс не фризится и система отвечает на нажатие клавиш в любой момент

тоесть эта опция ForceCompositionPipeline = On заменяет «тиринг» ожиданием полного кадра во время ожидания кадра иксы «замораживаются» не отвечая на любой ввод

теперь по записи:
во первых- в записи со включенным ForceCompositionPipeline = On в видео(кадрах) есть тиринг, почему- потому что ffmpeg берет кадр из памяти, и в памяти во время «фриза» находится кадр с тирингом но этот кадр не отображается на экране и я вижу «фриз» но ffmpeg записывает кадр с тирингом, тоесть все кадры с тирингом в записи с ForceCompositionPipeline = On в этот момент мой экран был заморожен и я не видел кадра с тирингом, я видел кадр до и после тиринга
второе это опции записи- все видео записаны в 1080p на 60ФПС (даже те в которых 30ФПС), опция записи для всех видео одинакова и нагрузка системы идентична, вот строка

ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0 -f pulse -ac 2 -channel_layout stereo  -i default -vcodec nvenc -preset slow -b:v 8M -maxrate 8M -bufsize:v 8M -bf 2 -refs 1 -bf 2 -refs 1 -g 120 -i_qfactor 1.1 -b_qfactor 1.25 -qmin 1 -qmax 70 -threads 0 -strict -2 </file>

в третьих- для местных форумных ботов, которые ниразу в жизни не видели тиринг и считают что он не существует
идите сюда http://codepen.io/anon/pen/rjoGwB (чтоб скачать- Export снизу справа с сохраните ZIP, распакуйте после скачки и откройте index.html) (вот клон http://liveweave.com/67C4N2 (скачать- сверху Tools-...as zip)), если в браузере не работает-просто скачайте любой из указанных.
Теперь запустите два Разных браузера на весь экран на двух рабочих столах(если у вас i7 восьмиядерный то три-четыре браузера(Firefox chromium midori qupzilla для примера,вообще любые)) и откройте скачанный файл или онлайн на весь экран
один из браузеров начнет лагать(количество окон в браузере не важно,достаточно одного,все невидимые окна не нагружают систему) и у вас будет тиринг
если включить ForceCompositionPipeline = On то тиринга не будет, но будут невероятные рывки (а если записывать в этот момент ffmpeg-ом то на видео будет дичайший тиринг(а на экране не будет да,а будут рывки))

Теперь видео-пруфы(везде где Vsync- с включенной вертикальной синхронизацией
1.Vsync ForceCompositionPipeline = Off ровный ФПС только при малом количестве объектов в кадре
2.ForceCompositionPipeline = On дергается даже при малом количестве объектов в кадре хотя ФПС показывает одинаковый даже лучше чем в прошлом
3.On и Off с 00:00 по 1:55 Vsync ForceCompositionPipeline = Off , с 1:56 до конца On, также тест лага мышки...плохо заметно на записи ибо «курсор движется» в кадрах ffmpeg когда у меня на экране все замирает включая курсор но всеравно заметно медленнее чем на 30ФПС на Off
4.Vsync ForceCompositionPipeline = Off никаких «лагов» в отзывчивости,мгновенная реакция на кнопки но есть тиринг(но его мало во всем видео) кадры тиринга 7679 12238 12328 http://imgur.com/a/ehx4y
5.Vsync ForceCompositionPipeline = On гдето раз в 5 сек идет один-два лага на «кадр тиринга» смотри ссылку ниже
6.раскадровка прошлого видео с 2231 кадра прошлого видео 115 следующих кадров, тиринг 00:02(кубы справа снизу) 00:07(тоже справа снизу) 00:32(две полосы по центру экрана) 00:52(нижняя часть экрана под полосой прокрутки ютуба) 1:49(чуть выше середины экрана), напоминаю- я на экране не вижу тиринга, на экране просто пропадает кадр тиринга и во время этого кадра весь «ввод» заморожен
7.1080 Vsync ForceCompositionPipeline = Off в начале видео «плавность анимаций в меню», на 30 ФПС сравните со следущим видео, также в конце движение мыши
8.1080 ForceCompositionPipeline = On сравнивайте плавность этого с предыдущем видео(надо быть слепым чтоб не увидеть разницу) и добавьте к этом то что весь «ввод» клавиатура и мышь работает с такимиже «лагами» тоесть во время этого «фриза» что ярко видно на видео даже клавиатура не отвечаает,даже переключение индикаторов типа Намлока на клавиатуре не работает(а в прошлом все прекрасно работает никакого лага для «ввода») также в конце лаги мыши-хорошо виден синхрон мыши к лагу
9.720 ForceCompositionPipeline = On выключены тени чтоб получить 60ФПС и 720 разрешение игры, лагов меньше но даже в начале видео в меню в «конце анимации» можно видеть лаг, также такойже как в прошлом видео лаг во время всего видео но меньше конечно за счет более высокого ФПС
10.720 Vsync ForceCompositionPipeline = Off 720 и без теней на 60ФПС сравните плавность с прошлым видео
11.Vulkan Vsync ForceCompositionPipeline = Off сравнивайте со следущим
12.Vulkan Vsync ForceCompositionPipeline = On все эти «маленькие рывки» воспринимаются нормально, но не забывайте- во время всех этих рывков у меня лагает весь «ввод»(что очевидно критично в такой игре которая показана)
13.Vulkan ForceCompositionPipeline = On без всинка, видео в полной мере показывает чем плоха эта опция ибо весь GUI интерфейс всей системы вот так вот лагает, вы думаете в таких лагах можно хотяб текст в альттабе печатать- буквы нажимаются по 2 раза и выделение мышкой ездит как захочет(во время лага курсор мыши продолжает двигаться сам по себе в направлении которое было до лага выделяя больше места)

TLDR- смотрите видео и читайте коммент к 6 и 8 и 13 (не забываем смотреть на фреймрейт слева свурху), и вывод ниже

Вывод-Когда запущена «одна игра» или «один браузер» или «одно окно редактора» опция ForceCompositionPipeline = On практически никак не отличается с Off режимом, но когда окрыто множество окон- опция On делает весь UI «лагающим» и неверно реагирующим на ввод с клавиатуры и мыши,при этом визуальный ФПС не соответствует показываемому(счетчиком).
Наиболее ощутимы лаги когда ФПС становится ниже 60,а это даже два окна файл менеджера и выделяя файлы в одном из них-ФПС уже просядет до 30-50
По результатам тестов- опция ForceCompositionPipeline = On не показывает(визуально на экране) кадр с тирингом и во время кадра(возможно двух кадров,лаги сильно ощутимы) с тирингом вся система «заморожена» но программы продолжают работать и могут брать «текущий кадр» и этот кадр который «не был показан» будет с тирингом.
Также- «визуальный ФПС» не соответствует тому что показан на счетчике в игре, можно убедиться в видео.

Все игры на видео,без записи у меня идут на 60ФПС+(даже tomb raider в 1080), нагрузка на CPU была от 20 до 50% максимум(и опция On Off не влияет на нагрузку), GPU только в tomb raider до 80%
сразу уточню-нагрузка на GPU даже 100% никак не влияет на запись/кодирование ffmpeg(будут потеряно чуть больше кадров но показанные фризы еслиб были из за нагрузки на GPU былиб и в опции Off, а их небыло)
на запись влияет только нагрузка CPU(если 100% CPU то ffmpeg будет дублировать много кадров давая всего 5-10ФПС в сек), нагрузка CPU в обоих режимах одинакова...
Лагает точно также без записи но вместо ffmpeg достаточно запустить пару окон браузера с файл менеджером(текстовый редактору уже будет неюзабельным)

Все видео записаны на последнем драйвере 378.09 и XFCE
Я тестировал эту опцию уже более года уж точно, пробовал на KDE(там все еще хуже по очевидным причинам-слишком много элементов просаживают ФПС ниже 60 очень часто) там такиеже лаги, также версия ядра/иксов/нвидиа дров/дистрибутива не влияют на результат
пробовал на двух дистрибутивах(второй убунта) и трех обновлениях opensuse- лаги идентичны
и да на это не влияет «железо» пробовал на более старой видеокарте нвидиа и совершенно другом железе- точно такиеже лаги
проблема очевидна- во включенной опции ForceCompositionPipeline = On
как она работает- не буду гадать, она работает как будто в «железе» тоесть в видеокарте это объяснялобы пропуск кадров и что иксы не отвечают и что пропущенный кадр можно взять из памяти но видеокарта его не показывает
но тогда почему настолько визуально разный ФПС при записи- еслиб это была только опция видеокарты тех лагов что на видео выше при On небылоб и видео былиб идентичны с Off
такчто думайте сами

Мне нужен «мгновенный отклик» от интерфейса,а со включеной опцией ForceCompositionPipeline = On я даже альт-табнуться не могу мгновенно приходится по два раза наживать хоткеи
про текст я уже писал, и вот еще один пример-я последние пол года играл в одну игру и записыввал ее на ютуб,вот пример видео
игра очень мало требовательна 20% CPU и 20% GPU(да она через эмулятор) и тиринг есть в некоторых видео на старте и в нескольких кадрах в процессе
https://www.youtube.com/watch?v=QH5GUd5d5Lw на 2:13 (на протяжении всей секунды к 2:14) можно видеть тиринг вот выделил на скриншоте http://imgur.com/a/0vXTv (между выделенными красными линиями спрайт горы разрезан по горизонту) поставив 0.25 скорость на ютубе это видно
так вот игра идет идеально и если включить ForceCompositionPipeline = On то появляются эти описанные «лаги» и я не могу реагировать и не вижу множества кадров,так как игра активная и требует реакции- в игре бывает по 1-2 кадра на «атаку» на которую нужно реакцию мгновенную делать,но «лаг»-мало того что может просто не показать кадр с «атакой» так еще даже если прошлый кадр был с анимацием атаки,и я должен на нее реагировать-я не могу потому что следущий кадр (случайно так выходит) не показывается потмоу что с тирингом,и в этот момент у меня не работает ни одна кнопка-тоесть моя реакция игрой не воспринимается. Поэтому всегда стоит Off у меня.

Как включить у себя ForceCompositionPipeline = On в терминал написать:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = Off }"
чтоб выключить (ребутов или рестарта иксов не надо,после выполнения On экран моргнет(на пол секунды как минимум) но если вы записываете видео в этот момент с экрана- на видео этого «черного экрана» не будет)



Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от user42

А ты сам видел этот G-Sync/Freesync в действии? Это 100% гарантия, что если куплю такую видюху и монитор к ней - то тиринга не будет ни при каких условиях?

anonymous
()
Ответ на: комментарий от anonymous

G-Sync/Freesync в действии

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

лишь пара игр под линуксом поддерживает гсинк, десктоп не поддерживает

lwx51033
() автор топика

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

genryRar ★★
()
Ответ на: комментарий от lwx51033

вот например это http://www.phoronix.com/scan.php?page=article&item=pascal-win10-linux&amp... тоже информация показыващая реальную картину что ФПС в линуксе в два раза ниже винды, но форумные боты-балабольщики будут писать по инерции-«похороникс хаха» «неправильно тестировали» «материнка плохая» и подобное

Только вот linux тут не причем, я тестил почти всё из этого, там где большая разница между lin/win gpu загружен на 50%, а то и меньше, это скорей корявое портирование.

А по теми: с ForceCompositionPipeline = Off, новый хитман идёт плавно, а с ForceCompositionPipeline = On при тех же 30фпс лагает картинка, как будто 15фпс. С другой стороны War Thunder с ForceCompositionPipeline = Off и без vsync с 80фпс лагает жуть, а с включенным vsync появляется разрыв изображения который лечится ForceCompositionPipeline = On и всё идет плавно.

anonymous
()
Ответ на: комментарий от lwx51033

На винде все игры поддерживают G-Sync или то же самое? Т.е. получается это еще игры надо переконпелять, эта технология для новых игр (2016 и дальше)? Нафиг она такая тогда?

anonymous
()
Ответ на: комментарий от anonymous

Нафиг она такая тогда?

изи бабло для нвидии,изи бабло для производителей мониторов по 1000баксов (когда они ничем не отличаются от 200баксовых моников)

поэтому всем «медийным» персонам(и ботов накупили) проплатили-вот они и трубят на твиче в твитере на реддите

а так да-это на уровне платы за наклейку на мониторе

lwx51033
() автор топика
Ответ на: комментарий от lwx51033

Тройную буферизацию включать не пробовал в конфигах драйвера?

Deleted
()
Ответ на: комментарий от lwx51033

изи бабло для нвидии

А для АМД не изи? Freesync или как его там.

изи бабло для производителей мониторов по 1000баксов

Т.е. монитор с G-Sync стоит в 3 раза дороже обычного?

И во всех играх, которые вышло ДО это шняги - тиринг все-равно останется? Не ну это тупо.

anonymous
()

Пипеееец...

Посмотрел, единственный G-Sync монитор с разрешением 1920x1080 в продаже - ASUS ROG Swift PG248Q 24" FHD. И стоит 34к. Остальное 2560x1440, совершенное ненужно, и от 40к и выше. Я фигею. Сначала они создают тиринг, потом предлагают заплатить за супердорогую видюху и монитор по тройной цене, чтобы избавиться от тиринга. Пипец товарищи, имеют нас...

anonymous
()

Я тут посмотрел список G-Sync мониторов я яндекс-маркете - все с TN-матрицей. ни*** себе ***нулись??? TN-шлак за 40 тысяч?????

anonymous
()

Да и пошли они тогда на*** со своими какоинновациями! Куплю хороший моник Dell за 15к и видюху помощнее (без G-Sync), наделаю костылей как ТС и буду рубать без тиринга. И пусть весь мир отсосет подождет.

anonymous
()
Ответ на: комментарий от anonymous

А для АМД не изи? Freesync или как его там.

AMD не лицензирует FreeSync, в отличие от, поэтому цена изделия увеличивается гораздо меньше, как следствие таких мониторов больше.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.