LINUX.ORG.RU

Wayland GBM (А знали ли вы?)

 ,


1

1

Постоянно встречаются вэйланд-нигилисты, которые его собсно, отрицают, ога.

Мне кажется пришло время пояснить за слона в комнате – GBM.

Знали ли вы, что в вейланде всю основную работу выполняет GBM???

Тоесть, представьте, все окна спавнятся сразу в видеопамяти, минуя процессор, если это игры под вайном/SDL, либо программы с современными тулкитами.

И композитинг тоже выполняется в ЖБМ, сразу в видеокарте, тоесть – отрендеренные окна не возвращаются в операривную память…

И даже (ПРЕДСТАВЬТЕ) все программы, даже в оконном режиме, могут использовать все преимущества DRI3.

Подумайте над этим.


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

Потому-что

  1. там нет тяжёлого шейдинга.
  2. там нет тесселяции на ЪЖЫПСОТ ТЫЩНАДЦОТЬ ТЫЩ полигонов.
  3. Ты мышью/хоткеем перемещаешь плавно и аккуратно один объект, или группу, в которой нет ТЫЩ полигонов.
  4. Работа КАД завязанна в основном на процессорное формирование дроу-колов, которое в 90000 раз полтора года назад в Мезе оптимизировал Блуменкранц.
  5. В каде не нужна кинематографичность.
  6. В каде не важен инпут-лаг в 8 миллисекунд.
  7. етц
Set440
() автор топика
Ответ на: комментарий от gaylord

Как композитор со всем этим связан?

А кто по твоему всё это рендерит в итоге? В настройках дисплея есть переключалка скейлинга для x11.

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

И как это всё связано с выводом картинки в окно?

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

Зачем вообще пересчитывать картинку при перемещении окна? Будь она хоть из миллиарда полигонов посчитана. Окно при перемещении не меняет размер. А при изменении размера окна расчёт ничем не отличается от расчёта следующего кадра, по-сути следующий кадр просто считается для других width x height и ничего более. Его один хрен считать надо - какая разница для какого размера это делать?

Как связан инпут-лаг со, сцуко, окном в которое GPU фигачит картинку? Инпут-лаг ни с чем кроме тормозов требухи игрушки связан быть не может.

Какие-то совершенно идиотские отмазки у игрошлёпов…. А потребители их, гхм, продукции, так сказать, бездумно их повторяют.

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

А кто по твоему всё это рендерит в итоге? В настройках дисплея есть переключалка скейлинга для x11.

Вообще это рендерит сперва fontconfig, потом gtk, а потом уже выводит на экран kwin. И результат выглядит именно так, как можно себе представить.

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

Я здесь говорил про KDE – со включённым композитингом теряется связность фреймтайма.

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

НО ЕСТЬ ОДИН НЬЮАНС:

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

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

ИТОГ:

у тебя не тормозит КАД – потому-что у тебя либо опенбокс, либо выключенный композитинг.

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

Ну умвр. Пока нет второго монитора с другим dpi все как надо в тех редких случаях, когда кроме xwayland выбора нет. Кто кому там байты толкает индеферентно.

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

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

У меня KDE и композитинг включен. Никаких проблем. Потому что CAD и всякие прочие охочие до GPU софтины не «думают, что им видеокарта предоставлена монопольно». Дали окно - туда и отображают результаты расчёта на том же GPU. И всё пучком.

С какого вообще хера игроделы думают что им кто-то чего-то монопольно предоставит на ПК? Вот тебе окно с размерами установленными оконным менеджером, вот в этот прямоугольник и рисуй. Фуллскрин это просто точно такое же окно просто размером с экран и без заголовка с рамками. Всё, никаких проблем не будет. Хотят халтурить - пущай для консолек свои игрульки ваяют, и на ПК не лезут со своими фантазиями про монополию.

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

Значит кад у тебя тормозит-таки. Тут кто-то придумал термин «консольный синдром», когда человек привыкший к 30 кадрам не видит лаги.

Опять-же:

  1. В каде не критичен инпут-лаг.
  2. В каде не нужна кинематографичность.
Set440
() автор топика
Ответ на: комментарий от Set440

В каде не критичен инпут-лаг.

А как связаны fullscreen и input lag? Через шареные буферы идет только картинка, события клавиатуры идут через тот же unix сокеты, через который идет и все остальное.

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

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

Полный фуллскрин в иксах на кедах – автоматически отключает композитинг, что инпут лаг убирает.

Фэйк-Фуллскрин на вейланде просто позволяет сворачивать игрушку без крэша.

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

Как это вообще связано с тем, что задача GPU - гнать результат в окно (surface, область памяти) заданного оконным менеджером размера, которое отображается потом тем же GPU в указанном оконном менеджером месте на экране?

И ещё раз - каким образом инпут-лаг вообще может быть связан с аутпутом? Он же, сцуко, инпут-лаг, а не аутпут-лаг. Разбирайся со своей мышью (или другим инпут-девайсом), тормозами игрухи и пр. Можешь разобраться с какого перепугу, у игрухи нет инпут-лага в фуллскрине, но почему-то есть в окне. Для видимокарты похрену вообще, на весь экран картинку (АКА набор байт в памяти) фигачить или не на весь. Не на весь даже проще чем на весь - меньше данных надо выдать.

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

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

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

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

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

Мы походу по кругу ходим. В итоге: существенной разницы в пайплайне между X и Wayland нет (в обоих случаях приложение через шареные буферы несет буфер в видеокарту почти напрямую), есть баг с крешом игрушки.

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

Если так смотреть, то Да.

70% игр без режима ФФ не умеют сворачиваться, но в иксах можно сделать скрипт для отключения композитинга.

В вяленом ничего делать не надо.

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

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

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

А GPU тут при чём? GPU не обрабатывает события клавиатуры и не занимается внутренними алгоритмами игрухи. Когда потрошка игрухи выдали GPU исходную информацию для расчёта кадра, нет никакой разницы, в окно результат потом попадает или на весь экран. Значит, проблема либо в обработчике инпута, либо в алгоритме игрухи. Например, из-за лени игродела, зная что она запущена в окошечке игруха долго рассчитывает в какую именно хрень тыкнул юзер или на сколько передвинулся. А фулл-скрин реализован, например, таблицами для стандортных разрешений, а не обратным рассчётом. Т.н. «композитинг» в смысле вывода окошек (AKA областей памяти) на экран в нужных местах в нужном z-порядке аж со времён Амиги хардварный. Я не уверен что даже сейчас при этом какая-либо численная обработка на GPU используется, если только для каких-то безумных и нахер ненужных эффектов, типа эффекта мятой бумаги или там ещё какой придури на активном окне. А если окно неактивное, то вообще похрен по очевидным причинам.

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

С точки зрения геймеров и то и другое – инпут лаг.

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

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

Nobody cares.

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

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

Игры делаются под винду, а потому вайн (и вся система целиком) должен соответствовать поведению винапи.

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

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

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

Вообще нет, и геймеры тут не при чем. Инпут лаг это задержка между вводом и видимым результатом. Что именно породило задержку — застрявший ивент от клавиатуры или километровый hdmi кабель — уже детали.

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

Вообще нет, и геймеры тут не при чем. Инпут лаг это задержка между вводом и видимым результатом.

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

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

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

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

В чём смысл всего вот этого оправдания рукожопия игроделов? Я сам когда-то игрушки писал, прекрасно знаю в чём суть этой охоты. «Вот вам инженерные образцы второпня, мамки для него, i740» всё такое «Not for sale» и «Not FCC approved», «вот вам ещё чемодан денег, но нужно чтобы на этом железе ваша игруха тормозила». Ну и занимаешься рукожопием, чтобы тормозило, иначе денег не дадут, хотя, на самом деле, игрушка и на первопне с софтверным 3D не тормозит. Так вот, с тех пор вообще ничего не изменилось.

Поэтому и надо пинать именно игроделов за тормоза и лаги. А не сваливать с больной головы на здоровую.

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

Поэтому и надо пинать именно игроделов за тормоза и лаги.

Так а толку пинать игроделов, если в X лютую задержку дает комплзитор, а в Wayland — пайплайн, расчитаный на perfect frame? Обе проблемы починили, но это заняло кучу времени.

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

Мы ходим по кругу, потому-что до тебя не доходит посыл:

Виндовые игрушки основаны на Direct-X и WinAPI. С их точки зрения, игра, запущенная в полном экране получает монопольный доступ к видеокарте. Это никак нельзя исправить, это логика WinAPI!

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

Но есть проблема: Кеды в иксах для таких окон не умеют отключать композитинг автоматически, потому нужно писать баш-скрипт, чтобы отключать быстро вручную (либо всунуть как-то в вайн, чтобы отключалось/включалось автоматически)

Следующая проблема: ДХВК ЭМУЛИРУЕТ полноэкранную работу игр, и вулкан сам-по-себе опасен, он умеет вызывать GPU-Hang, потому, надо избежать запуска в полном экране.

Как итог: Система вместе с вайном должна соответствовать методам работы WinAPI. Если ФФ под иксами медленнее чем в винде – это серьёзный повод для исправления.

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

Если оно тормозит, то что-то делать в каде - адище намного хуже каких-то там игрушек и поэтому намного заметнее чем в игрушках.

Ты так и не понял, каким образом оно тормозит.

Если в Мезу бросить флаг отображения фреймтайма, то при перемещении объектов на графике фреймтайма возникают оранжевые волны, 60 кадров проседают до 48, и это в каде не критично, потому-что тебе не надо целиться в быстрых противников – ты просто мышью плавно перемещаешь группу объектов.

Другое дело шутеры, или кривая стрельба в ньювегасе – ты, блин, попасть от такой задержки не можешь никак. Картинка малость вязкая как парафин, реакции на события мыши рисуются с опозданием, и ты постоянно мажешь.

Опять-же: пиков на фреймтайме не возникает, просто фреймтайм садится с 16 до 22 миллисекунд, и ты этого в каде не видишь, потому-что там это некритично.

Самая жесть возникает в игре «Osu!» – там требуется моментальная реакция.

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

и проблемы с HiDPI из-за XWayland, под которым работает большинство игр.

А что за проблемы? Пользуюсь стимом на 4К мониторе, куча всего через XWayland, проблем именно с HiDpi и XWayland не вижу. Если что, то композитор Hyprland. Самая мякотка, что все игры легко переключаются в фон и я хожу по другим воркспейсам и возвращаюсь обратно без каких либо сложностей и работает переключение мгновенно.

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

А что за проблемы? Пользуюсь стимом на 4К мониторе, куча всего через XWayland, проблем именно с HiDpi и XWayland не вижу. Если что, то композитор Hyprland. Самая мякотка, что все игры легко переключаются в фон и я хожу по другим воркспейсам и возвращаюсь обратно без каких либо сложностей и работает переключение мгновенно.

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

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

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

Зависит от старости игры, в новых так уже мало кто делает, тем более в DX12 и возможности такой не осталось.

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

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

tl;dr

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

Мне челик доказывает, что в плохом рисовании FF-окон виноват не включённый композитинг квина, а виноваты разработчики игр, и со всеми претензиями нужно идти к ним.

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

У чувака познания в геймдеве остались в эпохе второго пня.

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

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

Вообще говоря, что в X, что в Wayland нет такого понятия как fake fullscreen. Есть поверхность (Wayland) или окно (X), и есть признак fullscreen. И он либо есть, либо его нет.

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

Ну, я этого никогда не отрицал, и не спорил с этим.

Я наоборот говорю, что это «окно на весь экран без рамки», и что квин его считает плавающим, отчего не может отключить композитинг самостоятельно.

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

Судя по всему речь о промежуточных нестандартных hidpi-матрицах между двумя шагающими по планете стандартами Full HD и 4K под которые сегодня всё делается.

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

То есть если авторам Вэйланда лень разбираться с легаси, без Вулкана не работает?

Все актуальные композиторы умеют софтварный рендеринг.

То есть старые версии OpenGL, действительно, не поддерживаются, и без Вулкана дико тормозит?

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

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

Типа того, да.

Для меня лишь представляет разницу и интерес простая база: вяленок нормально варит все окна в DMA-BUF без вязкости, «БЕЗ ДЁРГАНЬЯ РУБИЛЬНИКА».

Тобишь, в иксах я выдумываю всякие скрипты, и при переключении на почту получаю некрасивый рабочий стол, без эффектов.

В вяленке я тупо запустил игрушку, и поехал. Touch and Go. При сворачивании игры я получаю красивый рабочий стол. И обои нескучные.

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

Игры в полном фуллскрине думают

Тебе об этом и толкуют, что малограмотные разрабы что-то там «думают» вместо того, чтоб что-то понимать.

Какая ещё монополия? Такого даже в современных игровых консолях нету, не то что в ОС общего назначения.

У чувака познания в геймдеве остались в эпохе второго пня

В зеркало посмотри.

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

Тебе об этом и толкуют, что малограмотные разрабы что-то там «думают» вместо того, чтоб что-то понимать.

В зеркало посмотри (2)

Объясни, почему ньювегас при сворачивании полного экрана теряет свою видеопамять, как и большинство дх9 игр

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

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

А ещё они намеренно сделали чтобы картинка рендерилась аккурат чуть меньше чем время между кадрами.

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

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

ЗЫ: В кадах никаких оранжевых волн нету. А хорошая отзывчивость графики нужна чтобы не заниматься пиксельхантингом. Попробуй какой-нибудь блендер запустить с софтверной графикой на древней машине. Ну или частоту процессора зарезать.

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

И каким образом оконная система мешает им сделать всё по-людски?

полноэкранка в х11 ходит через DRI3. Окна в х ходят в Glamor, если композитинг не выключен.

Ещё раз - все эти «лагающие» игрухи пишутся исключительно для того, чтобы ты купил новое железо.

Эти «лагающие» игры пишутся для того, чтобы я тебя научил выключать композитинг. (с) (сил уже на тебя нет)

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

Хорошая отзывчивость графики это не частота кадров, а примитивы синхронизации.

В кадах никаких оранжевых волн нету.

Ты даже не смотрел. Да и вообще, у тебя сто-проц сейчас вяленная сессия, и со своей глубиной познания ты этого просто не понимаешь, что очень вероятно.

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