LINUX.ORG.RU
ФорумTalks

В Wayland добавлена возможность отключения вертикальной синхронизации

 


1

3

https://www.opennet.ru/opennews/art.shtml?num=58160

В состав набора wayland-protocols добавлено расширение tearing-control, дополняющее базовый протокол Wayland возможностью отключения в полноэкранных приложениях вертикальной синхронизации (VSync) с кадровым гасящим импульсом, применяемой для защиты от появления разрывов при выводе (tearing).

Шах и мат!

Ответ на: комментарий от i-rinat

Проблема вяленого еще в том, что тот же SNA (который экономит около 0.5Вт если композитить им, а не GL(AMOR/ES) при общем потреблении ноутбучной системы в 4Вт) придётся впиливать каждому композитору отдельно.

Как вон сделали weston для RPi который использует аналогичный чисто двумерный аппаратный композитинг (Dispmanx) что и быстрее GLES и жрёт меньше энергии.

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

тот же SNA (который экономит около 0.5Вт если композитить им, а не GL(AMOR/ES)

Это, похоже, был какой-то баг в ядерном драйвере. Где-то в конце прошлого года стало лучше. У меня до этого просто включение 3d движка сразу добавляло порядка одного Ватта, постоянно, пока хоть что-то 3d включено. Сейчас iGPU быстро уходит в сон и почти ничего в простое не потребляет.

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

Не, я не о том баге.

Там причина в типичном подходе к композитингу через текстуры, квады и шейдеры, если композитить только через glBlitFramebuffer потребляется примерно столько же сколько и через SNA

Просто не надо продавливать несколько почти полноэкранных квадов растеризацией через несчастные три с половиной графических ядра встройки сидящей на одном канале памяти.

Но опять же, это на совести каждого из композиторов, так что выходит как всегда.

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

Свое разрешение и частоту уже можно поставить не перезагружаясь?

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

cumvillain
()

Кстати, а почему новость не на главной? IMHO то, что в Вейнлад теперь и тиринг есть должен знать каждый!

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

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

t184256 ★★★★★
()

иксам капец

вяленому капец

ох уж эта шляпа

куда смотрит шляпа

Обожаю ЛОР, спектр мнений не жалкие 360°, а прям-таки 4π.

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

Хехехе. Всё ещё мой любимый пост про вайланд: https://dudemanguy.github.io/blog/posts/2022-06-10-wayland-xorg/wayland-xorg.html

В частности, вот это:

Wayland's render loop design is ridiculous.

This is one of those parts where the limited design of Wayland really hits you in the face. You must design your render loop in a certain way. If you don't, prepare to face the pain. How this works on Wayland is that you get a callback from the compositor (the infamous frame callback), which essentially acts as a hint telling you when to draw. That's cool. The idea is that the compositor tells you when to draw, you obey like a good client, and everything works. Unfortunately, life is not actually that simple. Most compositors throttle rendering by not sending frame callbacks when the client is hidden. Internally in Mesa, a swap interval of 1 on EGL and FIFO mode on Vulkan (AKA basically vsync) work by waiting for frame callbacks. Do you see where this is going? If your client tries to draw while it is hidden, woops it gets indefinitely stalled until you bring it back into view. Well surely the client can just check if it is visible before drawing, right? Actually no, you can't. That's right, clients have no way of knowing if they are hidden or not. It's common to come up with some heuristic to deal with this.

This is the part where Wayland developers will say something like "just draw with the frame callback". If you build a client from ground up specifically with Wayland in mind, sure this is easy. But many applications are cross platform and internally driven. Refactoring a render loop to operate completely differently, just for the sake of one platform that acts like a special snowflake is not appealing to anybody. At this point, many applications just give up and set the swap interval to 0 or Vulkan to mailbox and call it a day. In mpv, I came up with a weird hack that essentially implements a blocking call with a timeout since we need vsync obviously but blocking forever isn't acceptable. There's a heuristic that guesses when mpv is hidden (been wrong before) and it doesn't draw in that case, so we have the same idealized efficiency, just not exactly in the "Wayland-approved" way.

In the past, there was actually an externally driven render loop specifically for mpv which worked like how upstream Wayland developers say it should work. It was extremely buggy, lacked features, and totally brittle. Reverting it was definitely one of the better commits I made. And in retrospect, this actually makes perfect sense. mpv has a crapload of timing code specifically designed to deliver the frame at exactly the right time. It's been battle tested and used over many years. Why would the compositor know when to draw better than mpv? Of course, it wouldn't. And indeed, when I squeezed Wayland's weird rendering design into mpv's internal workflow, frame timings dramatically improved (even before presentation was implemented) and tons of bugs were fixed in the process. The dislike of internally driven renderloops is purely driven by ideology, not any actual technical sound reasoning. There's nothing wrong with an application managing how it should render internally. It's a natural choice for any program that operates in a cross-platform manner. Wayland is the only platform like this, and it makes operating in this way needlessly difficult for no particular reason. We can't "waste" frames but never mind that you can just set the swap interval to 0 and belt it away anyway.
hateyoufeel ★★★★★
()
Ответ на: комментарий от einhander

Свое разрешение и частоту уже можно поставить не перезагружаясь?

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

Мне это недавно пришлось делать, потому что мой ноутбук внезапно перестал выдавать 5120x2160 через Thunderbolt. Раньше работало из коробки, но перцы из штеуда что-то сломали и нужно добавлять режим руками.

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

То есть они надеятся, что к тому моменту доделают управление цветом?

grem ★★★★★
()
Ответ на: комментарий от Roy-Batty

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

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

Я вообще не знаю, как это нормально сделать.

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

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

Звучит как пердолинг с видеоадаптером демосцены только без результатов демосцены :(

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

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

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

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

В моём случае, стопудов не загрузится. 5120x2160 только на внешнем экране есть. В ноутбуке экран несколько поменьше.

Короче, что так жопа, что эдак. Похоже, сидеть мне с иксами ещё долгие годы.

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

Или не тупить. Разраб wlrandr коммитит в протокол. Толковый. Можешь списаться, сделать issue. Сам с этим неприятно столкнулся (сам на внешнем монике люблю донастроить в иксах, как мне надо), куцая пока утилита. Если протокол поддерживает, сделает. Если нет, то при должной огласке вопроса внесут в upstream изменения (ну… Или начнут хоть думать) ;)

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

Или не тупить. Разраб wlrandr коммитит в протокол. Толковый. Можешь списаться, сделать issue.

Знаешь, я думаю я положу болт. Мне этот геморрой не нужен, раз иксы работают. Тем более, что wlrandr работает только с wlroots. А например с GNOME не работает. Нахрен такое вообще делать?

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

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

А если мониторов несколько? Ну как у меня с ноутбуком.

video=<port-name>:<resolution-w>x<resolution-h>@<refresh-rate>. Например, video=HDMI-A-1:1280x1024@85.

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

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

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

Поцоны, а как же горизонтальная синхронизация?

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

Имя порта меняется на каждый чих.

С чего бы это?

В последний раз я видел, чтобы изменение разрешения экрана требовало перезагрузки системы, где-то в районе Windows 95.

Ну это уже демагогия. Ведь речь идёт не о простом изменении разрешения экрана, а об изменении его на нестандартное, которое не заявляется экраном как поддерживаемое.

Да, это неудобно — согласен. Однако что интересно, так это то, что жалобы на Wayland несколько лет назад звучали как «ничерта не работает», а сейчас это уже такие нишевые вопросы вроде «добавить режим экрана, отсутствующий в EDID». Всё-таки Wayland проделал большой путь за эти годы.

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

Я тебе признаюсь, сам попробовал Wayland и столкнулся с неправильным масштабированием, Wlrandr не помог, списался с разрабом, он как раз Wlroots пилит. Ну что можно сказать, мне доложили официально - реальная релизная версия состоялась только у Sway. Ну а мне статичная мозаика не заходит.

Я бы и не дёргался, да только как всегда, корпы продавливают, чёрт знает что происходит с Xorg, поддержку ломают «по живому». Неприятно.

Roy-Batty
() автор топика
Ответ на: комментарий от Rootlexx

С чего бы это?

Ну во-первых, с того что портов на ноутбуке больше одного.

Ну это уже демагогия. Ведь речь идёт не о простом изменении разрешения экрана, а об изменении его на нестандартное, которое не заявляется экраном как поддерживаемое.

В штанах у тебя демагогия. Речь идёт о глюке в интеловском драйвере, из-за которого он это разрешение не хочет видеть, вместо этого выдавая два экрана. Что-то что-то multistream блаблабла. А для самого монитора это нативное разрешение.

это то, что жалобы на Wayland несколько лет назад звучали как «ничерта не работает»

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

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

Ну во-первых, с того что портов на ноутбуке больше одного.

Из этого ровным счётом никак не следует, что имя вывода, задаваемое ядром, будет «меняться на каждый чих».

Всё ещё ни черта не работает

Нельзя удобно задать своё разрешение ≠ не работает. Это задача, с которой подавляющее большинство пользователей не сталкивается.

При этом Wayland-сеанс GNOME уже использует немало людей, и постепенно то же самое начинает происходить и с KDE. Несколько лет назад это сказать было нельзя. Значит, Wayland-сеансы уже достаточно хорошо работают для этих людей.

В штанах у тебя демагогия

Без хамства и перехода на личности никак нельзя?

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

При этом Wayland-сеанс GNOME уже использует немало людей, и постепенно то же самое начинает происходить и с KDE. Несколько лет назад это сказать было нельзя. Значит, Wayland-сеансы уже достаточно хорошо работают для этих людей.

10% судя по статистике Firefox. И то только потому что Wayland пихают дефолтом. Это мизер.

Без хамства и перехода на личности никак нельзя?

Это ЛОР. Тут так принято.

Нельзя удобно задать своё разрешение ≠ не работает. Это задача, с которой подавляющее большинство пользователей не сталкивается.

Большинство юзеров сидят на Windows, где это ВНЕЗАПНО сделать можно без проблем. Современный десктопный линукс – это позор какой-то. Если раньше это была хоть и глючная, но довольно легко конфигурируемая система, то теперь «му-хрю пользователям это не нужно, мы всё удолили». Запускался для хрома и только, для остального лялексовый досктоп скоро будет совсем бесполезен.

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

10% судя по статистике Firefox.

Во-первых, 10% из всех пользователей, верно? Значит, среди пользователей окружений, в которых есть рабочая реализация Wayland-сеанса, эта доля выше.

Во-вторых, эта статистика была собрана до выхода Ubuntu 22.04, в которой осуществлён переход на Wayland по умолчанию. Было бы интересно взглянуть на результаты сейчас.

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

Без хамства и перехода на личности никак нельзя?

Это ЛОР. Тут так принято.

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

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

Большинство юзеров сидят на Windows, где это ВНЕЗАПНО сделать можно без проблем

Погуглил ради интереса — и я бы не назвал установку какой-то левой утилиты «без проблем».

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

эта статистика была собрана до выхода Ubuntu 22.04, в которой осуществлён переход на Wayland по умолчанию. Было бы интересно взглянуть на результаты сейчас.

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

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

Ты чо, культурный йопта? Чо ты тут забыл?

Погуглил ради интереса — и я бы не назвал установку какой-то левой утилиты «без проблем».

Это без проблем делается через тулинг, идущий с драйверами. У nvidia и amd это есть, а драйвер один хер придётся ставить.

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

Но федора популярнее убанты вроде как

В какой вселенной?

Но это всё не важно, потому что 14 лет уже эту хрень пилят. За 14 лет можно было очень много что сделать

«Xorg/XFree86 пилят уже 30+ лет, и всё никак не допилят: то тиринг, то проблема с частотой обновления при многомониторных конфигурациях — а когда он научится работать с несколькими видеокартами без костылей? За 30+ лет можно было очень много что сделать.»

Понимаете, в чём соль? — иксы как бы тоже не предел совершенства, но многих людей (включая вас) они почему-то устраивают, несмотря на всю их недопиленность. Так что если Wayland на данный момент не готов для вас лично, то это вовсе не значит, что он не готов для многих других людей.

Ну и всерьёз его начали пилить для десктопа не так уж давно, а скорость разработки коррелирует с тем, насколько широко он используется. Точкой отсчёта можно назвать включение тогда ещё абсолютно не готового Wayland-сеанса в Fedora по умолчанию, а недавний переход в Default Linux 22.04 — это важная веха.

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

«Xorg/XFree86 пилят уже 30+ лет, и всё никак не допилят: то тиринг, то проблема с частотой обновления при многомониторных конфигурациях — а когда он научится работать с несколькими видеокартами без костылей? За 30+ лет можно было очень много что сделать.»

Не, не пилят. Иксы уже лет 10 как особо никто не трогает, потому что «Wayland уже почти готов».

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

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

Понимаете, в чём соль?

Нет, не понимаю. В Wayland спустя 14 лет нет банальных вещей, которые были даже в Windows 98. Это было бы очень смешно, если не было бы так тупо.

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

Работает быстро, >анимации плавные

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

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

Работает быстро, анимации плавные. Тебе не все равно на чем?

Мне не всё равно, потому что это влияет на расход батарейки моего ноутбука. Тут кто-то сравнивал: переход с гнома на кеды час работы от батарейки добавляет. Это не в тапки срать!

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

Мне не всё равно, потому что это влияет на расход батарейки моего ноутбука. Тут кто-то сравнивал: переход с гнома на кеды час работы от батарейки добавляет. Это не в тапки срать!

И девственность восстанавливает, ага.

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

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

Плавные анимации призваны быть красивыми.

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

И девственность восстанавливает, ага.

Если тебя посетил RAPE DWARF, твою девственность уже ничего не восстановит. Опасайся гномов, они такие!

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

Если тебя посетил RAPE DWARF, твою девственность уже ничего не восстановит. Опасайся гномов, они такие!

Можно просто расселить вокруг барсуков. И проблема карликов будет решена.

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

Я кстати нагнал, работает. У меня фиксированное разрешение монитора и если я ставлю что-то отличное от 90Hz, drm меня не любит :(

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

А что за беды с вяленым? Как обновил убунточку до 22.04 так и работает. Единственно что хром не работает, приходится с ключиками запускать, но это один раз настраивается

cobold ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Через несколько лет, когда вяленый будет действительно готов, его объявят устаревшим и начнут пилить новое. Смузи само себя не выпьет!

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

Не, не пилят. Иксы уже лет 10 как особо никто не трогает

Ну да, а 8 выпущенных за это время версий, добавивших расширения XInput 2.3, DRI3 и Present, GLAMOR, поддержку libinput, RandR 1.5, PRIME, драйвер modesetting, работающий поверх KMS… — это «почти никто не трогает», ага. Вполне себе пилили как могли, но родовые проблемы решить так и не осилили.

И даже если бы всё было так, как вы сказали, то 3020+ лет пилят, да всё никак допилить не могут. И уже не смогут.

Там в протоколе уже куча старых проблем, костылей и прочей срани

Например?

Одно только дробное масштабирование которого нет чего стоит.

Ещё один не знающий матчасть… Недавно только объяснял одному здесь, что дробным и любым другим масштабированием под X-сервером занимаются тулкиты, и ровным счётом ничего не мешает им делать это хоть в Wayland, хоть в Xorg, хоть в Windows, хоть где бы то ни было ещё. Даже показывал снимок экрана с VLC с «невозможным в Wayland» масштабированием 150%, запущенным в Wayland-сеансе GNOME.

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

Одно только дробное масштабирование которого нет чего стоит.

Это народ не разобрался в причине и сваливает вину на вейленд.

Масштабированием может заниматься тулкит (сам рисует всё нужного размера) либо же остается только растянуть окно композитором. При дробном растягивании неизбежно будет мыльное и тормозное говно, можно только сорт выбрать.

Если же тулкит умеет в масштабирование (QT), то и никаких проблем с ним в вейленде нет. GTK в масштабирование не умеет.

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

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