LINUX.ORG.RU
ФорумTalks

Объясните triple buffering

 , ,


1

4

Всем привет!

Уже несколько лет вижу новости про то как разработчики ubuntu пытаются протолкнуть патчи про triple buffering в гном и в комментах постоянно ругают бюрократию и разрабов гнома которые не хотят это принимать. Последний пример - phoronix.

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

Объясните если кто в теме.



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

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

P.S. когда в последний раз видел монитор на 120Hz, меня укачало и я сблевал. Так что зачем нужно больше 60Hz на досктопе, для меня тоже остаётся загадкой.

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

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

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

ЗЫ сижу на 144гц

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

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

Ненене. Тоже подвержен такой фигне. Как-то раз от шутера начало тошнить из-за большого фпс.

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

В магазинах на высокочастотные телевизоры смотреть неприятно. Движения слишком плавные, что могут укачать.

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

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

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

Да что с вами такое? У меня монитор 144 Гц, а рядом на 60 Гц. И когда я перевожу мышь с одного экрана на другой сразу становится заметно, как она рывками двигается. 144 Гц намного улучшает восприятие при движении курсором или окном.

Вот когда я ходил в кино на Хоббита [не нашего :)], который был снят в 48 к/с вместо обычных 24, то вначале было немного непривычно. Но потом стало норм.

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

Частота моника (в моём случае) не имеет значения. Запусти обычное видео, а потом в 60 кадров в секунду, что-то в этом есть неприятное. Если бы все видео были такими, привык бы. Но мозг приучился к «быстрому слайдшоу», воспроизведение более плавное воспринимается как нечто реальное, но не обнаруживается вне экрана, мозг глючит. Я понимаю это так.

А наш Хоббит - это что? Я помню только телеспектакль восьмидесятых :)

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

Запусти обычное видео, а потом в 60 кадров в секунду

Ну вот это я на Хоббите и ловил. Но не сказать, что мне стало плохо. Привык через 5 минут.

А наш Хоббит - это что?

Модератор с Лора )

ox55ff ★★★★★
()
Последнее исправление: ox55ff (всего исправлений: 1)
Ответ на: комментарий от static_lab

возможно, это уже постпроцессинг картинки на самих тв. я на своей соньке поотключал все эти «улучшалки». задача тв точно передавать цвета (включая всякие hdr10) и обеспечивать правильный контраст. все остальное - выключать прям сразу, как достал из коробки.

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

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

Ну, да. Рывками, ичо? Главное чтоб блевать не тянуло.

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

Так ведь тянет. Я 95% времени провожу на 144 герцовом мониторе, а 60 герцовый на подхвате. Когда я на нём что-то делаю, то кажется, что компьютер начал тормозить.

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

Так что зачем нужно больше 60Hz на досктопе, для меня тоже остаётся загадкой.

Чтобы глаза не уставали. Лично у меня от 60 герц начинают болеть.

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

Само понятие triple buffering понятно, но не понятно зачем даже в оригинальном PR в gnome упоминают буст частоты видюхи (ссылка), это и смущает. Разве если видюха не успевает отрисовать следующий кадр вовремя то она не нагружена настолько что буст сам должен активироваться?

P.S. рядом 60гц и 120гц стоят, все что я вижу это то что курсор при движении отображается в 2 раза чаще и при высоком DPI это меньше ломает точность движений.

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

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

Лучшее решение - выкинуть анимации

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

Само понятие triple buffering понятно, но не понятно зачем даже в оригинальном PR в gnome упоминают буст частоты видюхи (ссылка), это и смущает. Разве если видюха не успевает отрисовать следующий кадр вовремя то она не нагружена настолько что буст сам должен активироваться?

Use triple buffering if and when the previous frame is running late. This means the next frame will be dispatched on time instead of also starting late. It also triggers a GPU clock boost if deemed necessary by the driver.

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

Что выглядит дико, в принципе. С другой стороны, у гнума в Mutter встроен движок JS, поэтому я вообще не удивлён что оно всё лагает.

hateyoufeel ★★★★★
()

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

Меня эта ситуация вообще удивляет. Даже первые Voodoo ворочали в реальном времени очень сложный графон, а в иксах на современных видюхах какая-то вечная проблема быстро отрисовать два десятка прямоугольников. Я не понимаю, как это работает, что там внутри тормозит.

yu-boot ★★★★
()
Ответ на: комментарий от hateyoufeel

Так что зачем нужно больше 60Hz на досктопе, для меня тоже остаётся загадкой.

Чтобы кайфануть от летающей под пальцами системы. Не в иксах, понятное дело.

yu-boot ★★★★
()
Ответ на: комментарий от yu-boot

Даже первые Voodoo ворочали в реальном времени очень сложный графон, а в иксах на современных видюхах какая-то вечная проблема быстро отрисовать два десятка прямоугольников. Я не понимаю, как это работает, что там внутри тормозит.

Так это не иксы. Это просто современный софт, в котором 100500 стадий в конвейере прежде чем твой кадр попадёт на экран.

Зацени вот эту статью: https://pavelfatin.com/typing-with-pleasure/

Там перец замеряет задержку между нажатием клавиши и отрисовкой символа в различных текстовых редакторах. Обрати внимание, что добавление композитора туда (https://pavelfatin.com/images/typing/windows-aero-latency.png) добавляет задержку в один, иногда два кадра.

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

Что очень грустно всё, потому что современные компы проигрывают Apple II из 1983 года по части задержек при вводе: https://danluu.com/input-lag/

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

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

yu-boot ★★★★
()
Ответ на: комментарий от yu-boot

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

Никак они это не решают. Венда точно так же лагает. Но да, там хватило мозгов хотя бы не пихать JS-движок прямо в композитор, как это сделали в GNOME.

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

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Я понимаю, что LINUX.org.ru, но совсем сказки не надо. У меня есть в дуалбуте и шинда и линукс с X11 и вялендом на выбор, X11 по скорости отклика просто ужасен. Что вижу, то пою.

yu-boot ★★★★
()
Ответ на: комментарий от yu-boot

Я понимаю, что LINUX.org.ru, но совсем сказки не надо. У меня есть в дуалбуте и шинда и линукс с X11 и вялендом на выбор, X11 по скорости отклика просто ужасен. Что вижу, то пою.

Skill issue lmao

У меня в иксах лагов наоборот нет. В вяленде вроде тоже, там просто глюки и ничо не работает. А вот с вендой всё печально, по крайней мере в 10.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от yu-boot

Это работает как множество отдельных 3d задач. Нафига это в оконном интерфейсе, хз.

Shadow ★★★★★
()
Ответ на: комментарий от yu-boot

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

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от yu-boot

amdgpu ускоряет 2d через glamor прям очень бодро.

Кстати, на закрытом amdgpu-pro композитор не жрёт производительность других 3D приложений - или динамически как-то всё переключается, или хз что.

На открытом без композитора glmark2 такой же, как на закрытом, с композитором - боль и печаль.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от yu-boot

А железо какое, где 10 лагает?

Тредриппер, дохренадцать память, rx6900 вместо видеокарты. В сравнении с KDE+X11 венда таки лагает :(

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Shadow

amdgpu ускоряет 2d через glamor прям очень бодро

У меня амудегпу как раз, glamor руками только отключить можно, он по умолчанию. Встройка конечно, но вяленд там куда плавнее иксов. Пару лет ещё полечат детские болезни и думаю норм будет. В иксах как таковых кроме пары нескучных wm меня ничего не привлекает, уродская технология под железо и реалии 1980ых имхо.

yu-boot ★★★★
()
Последнее исправление: yu-boot (всего исправлений: 1)
Ответ на: комментарий от yu-boot

Ну да, ну да. Когда тулкиты реализуют функциональность исов, когда они это сделают одинаково, когда рак на горе свистнет... Был бы я юн и с кучей времени, сделал бы из xwayland композитор, совместимый с x wm.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от imul

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

В том-то и проблема, что всё тормозит из-за того, что кода стало СЛИШКОМ МНОГО.

hateyoufeel ★★★★★
()
Ответ на: комментарий от yu-boot

Так гейфон это(плавность) и на 60 Гц умеет показывать. Ведь размер(циферки) не главное, нужно еще и пользоваться уметь

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

Я там просто не дописал «говорили они». И большинство кода просто переваливает байтики из одной абстракции в другую.

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

Это чтобы можно было рисовать следующий кадр ещё до того, как уже отрисованный уедет на экран

Уехать кадр на экран - бесплатно при двойном буфере. Просто запись указателя в регистр и картинка на монитор показывается с места А. А следующий кадр рисуется в месте Б. man OpenGL SwapBuffers()

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

Это чтобы можно было рисовать следующий кадр ещё до того, как уже отрисованный уедет на экран

Уехать кадр на экран - бесплатно при двойном буфере. Просто запись указателя в регистр и картинка на монитор показывается с места А. А следующий кадр рисуется в месте Б. man OpenGL SwapBuffers()

Копетан!

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

hateyoufeel ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)